Orchardcms Orchard:将ContentPart焊接到所有ContentType

Orchardcms Orchard:将ContentPart焊接到所有ContentType,orchardcms,Orchardcms,我需要将ContentPart焊接到所有内容类型。请告诉我写这段代码最好的地方是哪里 我查看了Orchard的源代码,其中InfosetPart与ContentHandlerBase的激活方法中的所有内容类型相结合 遵循InfosetPart weld机制,我创建了一个继承自ContentHandlerBase的类,并在激活方法中放置了一个断点,该断点具有以下条件,该条件一次又一次地受到影响(对于一种内容类型不止一次) context.ContentType==“页面” 我不确定它是否应该如此,

我需要将ContentPart焊接到所有内容类型。请告诉我写这段代码最好的地方是哪里

我查看了Orchard的源代码,其中InfosetPart与ContentHandlerBase的激活方法中的所有内容类型相结合

遵循InfosetPart weld机制,我创建了一个继承自ContentHandlerBase的类,并在激活方法中放置了一个断点,该断点具有以下条件,该条件一次又一次地受到影响(对于一种内容类型不止一次) context.ContentType==“页面”


我不确定它是否应该如此,因为理想情况下,它应该只满足此条件一次。

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

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

下面是一个简单的代码示例

public class MyPartHandler : ContentHandler 
{
    protected override void Activating(ActivatingContentContext context) {
        context.Builder.Weld<MyPart>();
    }
}
公共类MyPartHandler:ContentHandler
{
受保护的覆盖无效激活(激活ContentContext上下文){
context.Builder.Weld();
}
}