Я пишу приложение командной строки, которое проверяет SPFieldCollection, возвращаемое свойством SPWeb.Fields, но оно не ведет себя так, как мне бы хотелось. У меня есть сотни 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
}
}
}
}