2011-12-30 15 views
1

子Webのリストを取得するために各WebとそのWebを繰り返し処理しようとしていますが、繰り返しがサブWebを持たないWebになると問題が発生しますオブジェクト参照がオブジェクトのインスタンスに設定されていない、それは例外に論理エラーforeach Web.webs

を与える

コードは、==(TopLevelWeb.Webs.Counts場合、私も」試してみましたここ

private void dwnEachWeb(SPWeb TopLevelWeb) 
    { 
     if (TopLevelWeb.Webs != null) 
     { 
      dwnEachList(TopLevelWeb); 
     } 
     foreach (SPWeb ChildWeb in TopLevelWeb.Webs) 
     { 
      dwnEachWeb(ChildWeb); 
      ChildWeb.Dispose(); 
     } 
    } 

です0) "問題は、サブWebが存在しないときにプログラムがゼロかヌルかどうかをチェックする方法です。ウェブにチェックができるかどうかを確認する方法があるかどうか疑問です。ウェブが存在するかどうか。

答えて

1

TopLevelWeb.Websがnullに評価された場合、null参照例外が発生します。だから、試してみてください。

private void dwnEachWeb(SPWeb TopLevelWeb) 
{ 
    if (TopLevelWeb != null && TopLevelWeb.Webs != null) 
    { 
     dwnEachList(TopLevelWeb); 

     foreach (SPWeb ChildWeb in TopLevelWeb.Webs) 
     { 
      dwnEachWeb(ChildWeb); 
      ChildWeb.Dispose(); 
     } 
    } 
} 

これだけforeachTopLevelWeb場合とTopLevelWeb.Websがnullではありません。

+0

私はそれを試しても、ある時点でTopLevelWebがnullになるので、例外を与えます。(私はそれをデバッグしました) –

+0

私は自分の答えを編集します。 –

+0

完了しました、これまで作業していました、乾杯 –