为了任何寻求此问题答案的人的利益-
因为我正在创建一个配方,所以我可以通过将以下 XML 添加到配方的元素中来实现相同的效果:
<WinnersFeedWidget Id="/Identifier=WinnersFeed" Status="Published">
<WinnersFeedPart NumberOfWinnersToShow="15" SkinName="Blue"/>
<CommonPart Owner="/User.UserName=OrchardAdmin" Container="/Layer.LayerName=Default" CreatedUtc="2012-11-20T17:08:00Z" PublishedUtc="2012-11-20T17:08:00Z" ModifiedUtc="2012-11-20T17:08:00Z" />
<WidgetPart Title="Recent Winners" Position="2" Zone="AsideSecond" RenderTitle="true" />
</WinnersFeedWidget>
在本例中,WinnersFeedPart 是小部件上部件的名称。
我还必须使用导入和导出的覆盖来更新我的驱动程序类(以允许导出功能能够正确生成所需的 XML):
protected override void Exporting(WinnersFeedPart part, ExportContentContext context)
{
context.Element(part.PartDefinition.Name).SetAttributeValue("NumberOfWinnersToShow", part.NumberOfWinnersToShow);
context.Element(part.PartDefinition.Name).SetAttributeValue("SkinName", part.SkinName);
}
protected override void Importing(WinnersFeedPart part, ImportContentContext context)
{
part.NumberOfWinnersToShow= GetIntegerValue(part, context, "NumberOfWinnersToShow");
part.SkinName= context.Attribute(part.PartDefinition.Name, "SkinName");
}
(GetIntegerValue 是一个辅助方法,将导入器提供的值转换为 int)
对于这个工作的一个很好的例子,我建议从 Gallery 下载 Featured Item Slider 模块,并查看他们的 Driver 类。