迭代SPWebCollection时,SPWeb.Fields为空

时间:2011-05-24 14:46:35

标签: sharepoint-2007

我正在编写一个命令行应用程序来检查SPWeb.Fields属性返回的SPFieldCollection,但它的行为并不像我想的那样。我有数百个SPWebs,它肯定会触及它们所有,但除了最初的SPWeb之外,它还返回一个空的Fields属性。我做错了什么?

string siteUrl = "http://webroot/sitecoll";
using (SPSite siteCol = new SPSite(siteUrl))
{
    using(SPWeb outerWeb = siteCol.OpenWeb())
    {
        foreach (SPWeb innerWeb in siteCol.AllWebs)
        {
             LogMessageToFile(String.Format("Checking {0}", innerWeb.Url));  //executed for each of the hundreds of innerWebs
             if (innerWeb.Fields.ContainsField("Year"))
             {
                  // Never accessed after the first time through because innerWeb.Fields is empty
             }
        }
    }
}

1 个答案:

答案 0 :(得分:2)

SPweb.Fields住在网站集级别。

除非您在子网站级别专门创建字段,否则将返回0。