我在取消一些与内容类型相关的事件接收器时遇到了一些问题。这些内容类型和接收器是由我自己部署和注册的,因此我不会尝试删除任何 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()"抛出异常并告诉我无法修改集合。正如您在代码中看到的,我已经尝试了不同的方法来解决这个问题,如允许不安全的更新或使用提升的权限运行此代码。但我总是得到同样的异常。
那么我做错了什么?