每个 Web.webs 的逻辑错误

发布于 2024-12-23 09:51:47 字数 569 浏览 1 评论 0原文

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

未将对象引用设置为对象的实例

在这里

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

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

I am trying to iterate through each web and its webs, to get the list of child webs and so on, but problem is, when iteration comes to a web which doesn't have any sub webs it gives an exception

Object Reference not set to an instance of an object

Code is here

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

I even tried "if (TopLevelWeb.Webs.Counts == 0)" but problem is, when there will be no subwebs then how program will gonna check if its zero or null, i wonder if there is any way i can check if a web has collection of webs , like if i can check web.webs exists or not.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

牵你的手,一向走下去 2024-12-30 09:51:47

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

只有当 TopLevelWebTopLevelWeb.Webs 不为空时,才会执行 foreach

You'll get the null reference exception when TopLevelWeb.Webs evaluates to null. So try:

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

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

This only does the foreach if TopLevelWeb and TopLevelWeb.Webs is not null.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文