すべてのリストのビューを作成する必要があります。ビューは、必須のフィールドを表示する必要があります (リストごとに異なります)。
2 番目のリストが取得されると、すべてがうまくいきません。最初の for-each では、次のエラー メッセージが表示されます。
コレクションが変更されました。列挙操作が実行されない可能性があります
なぜこのバグが発生するのか本当にわかりません。
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPWeb myWeb = SPContext.Current.Web;
SPListCollection myLists = myWeb.GetListsOfType(SPBaseType.DocumentLibrary);
StringCollection viewFields = new StringCollection();
String viewName = "Mandatory fields view";
String query = "<OrderBy><FieldRef Name='Modified'/></OrderBy><Where><Eq><FieldRef Name='Author'/><Value Type='Integer'><UserID Type='Integer' /></Value></Eq></Where>";
foreach (SPList list in myLists)
{
foreach (SPField field in list.Fields)
{
if (field.Required)
{
viewFields.Add(field.ToString());
}
}
list.Views.Add(viewName, viewFields, query, Int32.MaxValue, true, false);
viewFields.Clear();
}
}