我正在编写一个命令行应用程序来检查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
}
}
}
}
答案 0 :(得分:2)
SPweb.Fields
住在网站集级别。
除非您在子网站级别专门创建字段,否则将返回0。