一部のイベントレシーバーを contenttype から登録解除する際に問題が発生しました。contenttype とレシーバーは自分でデプロイして登録したので、MOSS の組み込みまたは内部のイベントレシーバーを削除しようとはしません。
次のコード スニペットを使用してこれをアーカイブしようとしています。
using (SPSite site = new SPSite("http://wssdev06/"))
{
using (SPWeb web = site.RootWeb)
{
// web.AllowUnsafeUpdates = true;
SPContentType type = web.AvailableContentTypes[<ContentTypeName>];
while (type.EventReceivers.Count > 0)
{
type.EventReceivers[0].Delete();
}
type.Update();
// web.AllowUnsafeUpdates = false;
}
}
残念ながら、コマンド「type.Update()」は、コレクションを変更できないことを示す例外をスローします。コードでわかるように、この問題を解決するために、安全でない更新を許可したり、昇格された特権でこのコードを実行したりするなど、さまざまなことを既に試しました。しかし、私はいつも同じ例外を受け取ります。
それで、私は何を間違っていますか?