2

我已经基于文档集以编程方式创建了 ContentType 并希望将事件接收器附加到它。看起来像这样:

SPEventReceiverDefinition eventReceiverDefinition =   TestDocumentSet.EventReceivers.Add();
        eventReceiverDefinition.Class = "DocSetsTesting.EventReceivers.DocSetReceiver.DocSetReceiver"; // String
        eventReceiverDefinition.Assembly = Assembly.GetExecutingAssembly().FullName; // String
        eventReceiverDefinition.Type = SPEventReceiverType.ItemAdded; // SPEventReceiverType
        eventReceiverDefinition.Data = "XML"; // Arbitrary input data (String)
        eventReceiverDefinition.Update();

当我为 ItemAdding 事件执行此操作时,处理程序起作用。但它不适用于 ItemAdded。我做所有这些事情是因为我想隐藏具有特定内容类型的文件,所以我不希望它们显示在文档集内容 Web 部件中。有可能吗?可能有更简单的方法来做到这一点?非常感谢。

4

1 回答 1

1

在我看来,您忘记添加 ContentType.Update(true)。另外,请记住 ItemAdded 是一个异步事件,并且不在 w3wp 进程中运行。要调试它,您需要附加到 owstimer.exe 进程。

于 2012-01-13T14:31:31.700 回答