2012-04-16 18 views
0

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

問題はmaindiagramの割り当てにあり、結果としてnullと表示されます。そして、私はそれがどのようにnullになることができるか分からない。もう一つは、メインダイアグラムの最初のforeachにあります。私は同じ理由で仮定します。私はmaindiagramの問題を解決する必要がありますが、私はどのようにGetCurrentDiagram()は、あなたがエンタープライズアーキテクトで開いているダイアグラムを取得する必要がありますかわからない。 – Defi

答えて

0

このコードでは、提供されたメッセージだけで何が起こっているのかを理解することは不可能です。

  • 例外メッセージが提供する回線番号の表情は、ラインに

  • またはEnable first chance exception in Visual Studioを行くと、例外でコードが正確問題を発生させるライン上をbreakedされます。

0

repositorynullかもしれない - あなたは続行できるかどうかを決定するためのパラメータの引数にはnullチェックを行うべきです。またmaindiagramは、これらのものの両方があなたの問題を引き起こす可能性がある方法でアクセスされている(repositoryが何かあるならば、我々が知っているすべてのために、そしてGetCurrentDiagramnullを返すことがあります。

nullである可能性があります。

diagramListが存在しませんこの方法の範囲では、より自由な範囲があると仮定すると、これは何もない可能性がありますが、Addを呼び出します。また、何かのようにこれを反復し、elementnullであるかどうかを確認せずに、 にアクセスしてください。

要するに、あなたが投稿したコードにこれが発生する可能性がある場所が数多くあります。エラーが実際にどこに発生しているかを具体的に説明する必要がありますが、答えは同じです:something is nothing

+0

私は何かがnullであることを知っています。そして、それを解決する方法は、私は他のエラーをいつも同じにします。私は "maindiagram"についてのエラーを受け取ります。なぜなら、それはなぜか分かりませんが、maindiagram.DiagramObjectの "foreach"です。なぜ私のcurrentdiagram()がうまくいかず、メインダイアグラムに値を与えないのか知っていますか? – Defi

関連する問題