C# 每个Web.webs的逻辑错误
我试图遍历每个web及其web,以获得子web的列表等等,但问题是,当迭代涉及到一个没有任何子web的web时,它会给出一个异常 对象引用未设置为对象的实例 代码在这里C# 每个Web.webs的逻辑错误,c#,.net,sharepoint,sharepoint-2007,spweb,C#,.net,Sharepoint,Sharepoint 2007,Spweb,我试图遍历每个web及其web,以获得子web的列表等等,但问题是,当迭代涉及到一个没有任何子web的web时,它会给出一个异常 对象引用未设置为对象的实例 代码在这里 private void dwnEachWeb(SPWeb TopLevelWeb) { if (TopLevelWeb.Webs != null) { dwnEachList(TopLevelWeb); } foreach (S
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是否存在。当
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();
}
}
}
只有当
TopLevelWeb
和TopLevelWeb.Webs
不为空时,foreach
才会执行此操作。当TopLevelWeb.Webs
的计算结果为空时,您将得到空引用异常。因此,请尝试:
private void dwnEachWeb(SPWeb TopLevelWeb)
{
if (TopLevelWeb != null && TopLevelWeb.Webs != null)
{
dwnEachList(TopLevelWeb);
foreach (SPWeb ChildWeb in TopLevelWeb.Webs)
{
dwnEachWeb(ChildWeb);
ChildWeb.Dispose();
}
}
}
只有当
TopLevelWeb
和TopLevelWeb.Webs
不为空时,才会执行foreach
。我尝试了它,但仍然给出了一个异常,因为TopLevelWeb在某一点上变为空。。(我调试了它)我尝试了它,但仍然给出了一个异常,因为在某一点上,TopLevelWeb变为空。。(我调试过)