SharePoint:取消注册EventReceiver形成ContentType时出错

Flo*_*Flo 3 sharepoint events moss content-type event-receiver

我有一些问题,取消注册一些事件接收者形成一个内容类型.内容类型和接收器由我自己部署和注册,因此我不会尝试删除任何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;
            }
        }
Run Code Online (Sandbox Code Playgroud)

不幸的是,命令"type.Update()"抛出一个异常,告诉我无法修改集合.正如您在代码中看到的,我已经尝试了不同的方法来解决这个问题,因为允许不安全的更新或使用提升的权限运行此代码.但我总是得到同样的例外.

那么我做错了什么?

小智 6

您的问题是"AvailableContentTypes"属性返回一个READ-ONLY集合.

您还应该使用'ContentTypes'属性,一切都应该没问题.

问候,

挖.