错误:对象引用未设置为对象企业架构师和visual studio的实例

时间:2012-04-16 11:50:51

标签: c#

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

我正在为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));}
        }

如果你知道怎么做,请帮忙。

非常感谢你!

2 个答案:

答案 0 :(得分:0)

仅通过提供的消息无法理解此代码中发生的情况。

答案 1 :(得分:0)

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

这两件事都以可能导致问题的方式进行访问。

Add不存在于方法的范围内,因此假设它具有更宽松的范围:这也可能没有任何意义,但您可以在其上调用element。您也可以迭代这一点,如果它不是null是{{1}},请尝试访问属性。

简而言之,您发布的代码中可能会出现许多地方。您应该更具体地说明错误实际发生的位置,但答案是相同的:something is nothing