我正在编写一个模块,只要我的模块附加到的内容项被发布或未发布,就会在导航菜单中添加一些功能。 在我的处理程序中,继承自ContentHandler类,我已经覆盖了“已发布”和“未发布”的方法,并且功能正在按预期工作。 但是,问题是,即使对于没有附加模块(内容部分)的内容类型,我的模块中的内容处理程序方法也会被调用。
我也尝试继承'IContentHandler'而不是'ContentHandler'但结果相同。
有没有办法绑定ContentHandler的'已发布,发布,未发布等'方法,以便仅在内容部分附加到的内容项被修改时调用它们?
答案 0 :(得分:3)
好的,找到了答案。 在此处发布以供参考。
创建内容部分后,请说'abcPart',触发'发布,取消发布'以及与ContentHandler相关的其他方法,您需要做的就是在部件处理程序的构造函数中添加此代码。
public class MyHandler : ContentHandler
{
public MyHandler ()
{
OnPublishing<abcPart>((context, part) => {
/*your logic here*/
});
}
}
通过这种方式,构建者的'OnPublishing'部分中存在的代码只有在发布了附加'abcPart'的内容项时才会被触发。