我在使用 Umbraco 6.1.5 和 uSiteBuilder 3.0.0 时遇到了一个问题,当我使用ContentHelper
DocumentType 中定义的所有字段实例化一个强类型的 DocumentType 时,它们都被加载到对象中,但是像Name
,Id
或者Children
没有加载(它们'重新为空、空或 0)。
据我所知,这是因为ContentHelper
负责实例化的方法正在调用空构造函数DynamicNode
。有什么我想念的吗?我应该在我的文档类型上定义构造函数吗?
这是我的文档类型:
namespace USiteBuilderTest.DocumentTypes
{
[DocumentType]
public class Home : DocumentTypeBase
{
[DocumentTypeProperty(Name = "Field 1")]
public string Field1 { set; get; }
[DocumentTypeProperty(Name = "Field 2")]
public string Field2 { set; get; }
[DocumentTypeProperty(Name = "Field 3")]
public string Field3 { set; get; }
}
}
以防万一,这是调用空构造函数的代码部分:
Type typeDocType = DocumentTypeManager.GetDocumentTypeType(node.NodeTypeAlias);
if (typeDocType != null)
{
ConstructorInfo constructorInfo = typeDocType.GetConstructor(new[] { typeof(int) });
if (constructorInfo == null)
{
retVal = (DocumentTypeBase)Activator.CreateInstance(typeDocType);
}
else
{
retVal = (DocumentTypeBase)constructorInfo.Invoke(new object[] { node.Id });
}