質問

私はいくつかのeventreceiversの登録を解除するいくつかの問題を持っているがContentTypeをを形成します。 ContentTypeをとレシーバはので、私は任意のMOSS内蔵または内部eventreceiversを削除しようとしない展開と自分で登録しました。

私は、次のコードスニペットでこれをアーカイブしようとしています:

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は()」コレクションが変更できないことを私に告げる例外をスローします。あなたがコード内で見ることができるように私はすでに危険な更新を許可するか、システム特権でこのコードを実行すると、この問題を解決するために別のものを試してみました。しかし、私はいつも同じ例外を取得します。

だから私は間違って何をやってんだ?

役に立ちましたか?

解決

あなたの問題は、 "AvailableContentTypes" プロパティは、あなたの READ-ONLY のコレクションを返すことです。

また、 'contenttypesの' プロパティを使用する必要があり、すべてが正常でなければなりませんANSます。

よろしく、

掘った。

他のヒント

は、発行タイプに基づいてタイプですか?私はそれらの種類を変更する問題がありました。そうしないと、タイプの全体SchemaXmlを変更してみてください可能性があります。私は他の方法がないとき、これは時々働くことを発見した。

あなたはタイプへの書き込みを可能にするためにtype.ReadOnly = falseを設定することができる必要があります。

同様に、あなたのSPWebが配置されている必要はありません - <のhref = "http://blogs.msdn.com/rogerla/archive/2008/02/12/sharepoint-2007-and-wss-3を参照してください-0-処分・パターン・バイ・example.aspx#SPDisposeCheckID_140" のrel = "nofollowをnoreferrer">ここではロジャー・ラムさんのブログには、詳細についてはを。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top