1

我正在尝试遍历每个网络及其网络,以获取子网络列表等,但问题是,当迭代涉及没有任何子网络的网络时,它会给出异常

你调用的对象是空的

代码在这里

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

我什至尝试过“如果(TopLevelWeb.Webs.Counts == 0)”,但问题是,当没有子网站时,程序将如何检查它是零还是空,我想知道是否有任何方法可以检查一个web 有网络集合,比如我是否可以检查 web.webs 是否存在。

4

1 回答 1

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();
        }
    }
}

这仅执行foreachifTopLevelWeb并且TopLevelWeb.Webs不为空。

于 2011-12-30T16:41:24.233 回答