当我尝试使用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));}
}
如果你知道怎么做,请帮忙。
非常感谢你!
答案 0 :(得分:0)
仅通过提供的消息无法理解此代码中发生的情况。
查看异常消息提供的行号,然后转到
或Enable first chance exception in Visual Studio并且在例外情况下,代码将在生成问题的行上完全。
答案 1 :(得分:0)
repository
可以是null
- 你应该对参数参数进行空检查以确定是否可以继续; maindiagram
null
也可以是repository
(据我们所知,如果GetCurrentDiagram
是某种内容,那么null
可能会返回diagramList
。
这两件事都以可能导致问题的方式进行访问。
Add
不存在于方法的范围内,因此假设它具有更宽松的范围:这也可能没有任何意义,但您可以在其上调用element
。您也可以迭代这一点,如果它不是null
是{{1}},请尝试访问其属性。
简而言之,您发布的代码中可能会出现许多地方。您应该更具体地说明错误实际发生的位置,但答案是相同的:something is nothing。