错误:对象引用未设置为对象企业架构师和可视化工作室的实例

本文关键字:可视化 工作室 实例 企业 对象引用 设置 对象 错误 | 更新日期: 2023-09-27 18:31:11

当我尝试使用Visual Studio和Enterprise Architect编译我的程序时,我收到此错误。

正在为企业架构师编写一个工具,我必须制作一个图表,但我继续收到此错误,我不知道该怎么办。

我有问题的代码是:

    public Graph(EA.Repository repository)
    {
        EA.Diagram maindiagram;
        this.modelRepository = repository;
        maindiagram = repository.GetCurrentDiagram(); //recupero del diagramma
        this.diagramId = maindiagram.DiagramID; //identificativo del diagramma
        //inizializzazione nodi
        Collection nodeCollection = maindiagram.DiagramObjects;
        nodeList = new ArrayList();

        foreach (DiagramObject diagram in maindiagram.DiagramObjects)
        {
            diagramList.Add(diagram);
            foreach (Element element in diagramList)
            {
                if (element.Type == "Class"|| element.Type == "Component"||element.Type == "Package")
                { nodeList.Add(new Node(diagram, ref repository)); }
            }                
        }
        //inizializzazione archi 
        Collection linkCollection = maindiagram.DiagramLinks;
        linkList = new ArrayList();
        foreach (DiagramLink edge in maindiagram.DiagramLinks)
        {
            edgeList.Add(edge);
            foreach(Connector connector in edgeList)
                if (connector.Type == "Association" || connector.Type == "Aggregation" || connector.Type == "Compose" || connector.Type == "Dependency" 
                    || connector.Type == "Generalization" || connector.Type == "Realization")
                { linkList.Add(new Link (edge, ref repository));}
        }

如果您知道如何操作,请提供帮助。

多谢!

错误:对象引用未设置为对象企业架构师和可视化工作室的实例

仅通过提供的消息无法理解此代码中发生了什么。

  • 查看异常消息提供的行号,然后转到该行

  • 或在 Visual Studio 中启用首次机会异常,在异常时,代码将在生成问题的行上完全中断。

repository可以null - 你应该对参数参数进行空检查以确定你是否可以继续;也可以maindiagram null(据我们所知,如果repository是某物,那么GetCurrentDiagram可能会返回null

这两种内容的访问方式都可能导致您的问题。

diagramList 不存在于方法的范围内,因此假设它具有更自由的范围:这也可能是什么,但你调用Add。您还可以循环访问它,就好像它是某种东西一样,并且不检查element是否null,请尝试访问属性。

简而言之,在您发布的代码中有很多地方可能会发生这种情况。您应该更具体地说明错误实际发生的位置,但是,答案将是相同的:有些东西什么都没有