Orchard:将ContentPart焊接到所有ContentTypes

时间:2014-05-22 15:50:23

标签: orchardcms

我有一个要求,我需要将ContentPart焊接到所有内容类型。请指导我编写此代码的最佳位置。

我查看了Orchard源代码,其中InfosetPart与ContentHandlerBase' s激活方法中的所有内容类型进行了焊接。

在InfosetPart焊接机制之后,我创建了一个继承自ContentHandlerBase的类,并且在激活方法中,我放置了一个具有以下条件的断点,该断点一次又一次地被击中(对于一种内容类型不止一次)     context.ContentType ==" Page"

我不确定它是否应该是这样的,因为理想情况下它只能达到这个条件一次。

1 个答案:

答案 0 :(得分:1)

您实施它的方式是正确的。您的代码会多次执行,因为会为每个内容项调用内容处理程序,而不仅仅是内容类型。这也允许您将零件焊接到仅部分内容项目,而不是所有指定类型的项目。

您写道,您创建了ContentHandlerBase的子类。您应该使用ContentHandler作为基类。

下面是一个简单的代码示例,说明应如何做到这一点。

public class MyPartHandler : ContentHandler 
{
    protected override void Activating(ActivatingContentContext context) {
        context.Builder.Weld<MyPart>();
    }
}