使用Umbraco 5.1的fluent API以编程方式创建新媒体类型

使用Umbraco 5.1的fluent API以编程方式创建新媒体类型,umbraco,umbraco5,Umbraco,Umbraco5,使用Umbraco 5.1 API, 我可以使用下面的代码创建新的内容类型(用于在“内容”选项卡下创建内容节点) // create content type var typeBuilder = context.Hive.Cms().NewContentType("testType", "Test Type") .Define("value", "contentPicker", "Content") .Commit(); // create c

使用Umbraco 5.1 API, 我可以使用下面的代码创建新的内容类型(用于在“内容”选项卡下创建内容节点)

 // create content type
var typeBuilder = context.Hive.Cms().NewContentType("testType", "Test Type")
            .Define("value", "contentPicker", "Content")
            .Commit();

// create content node
var packageNode = context.Hive.Cms().NewRevision(packageNodeName, packageNodeName, "testType");
        packageNode.SetUploadedFile("value", postedFile);            
        packageNode.Publish();
        packageNode.Commit();
但是,有没有一种方法可以使用fluent API创建媒体节点?我需要在“媒体”选项卡树中使用自定义类型创建一个新的自定义媒体节点。 我尝试过以下方法,但似乎都不管用

1) context.Hive.Cms().NewRevision();
2) context.Hive.Cms<IMediaStore>().NewRevision();
3) builderStep.NewRevision<Media, IMediaStore>();
4) builderStep.NewRevision<TypedEntity, IMediaStore>();
1)context.Hive.Cms().NewRevision();
2) context.Hive.Cms().NewRevision();
3) builderStep.NewRevision();
4) builderStep.NewRevision();

此操作有效,但生成的介质类型不完整,因为当我尝试使用此类型手动创建介质时,会抛出一个错误“应指定名称”

CmsBuilderStep<IMediaStore> builderStep = new CmsBuilderStep<IMediaStore>(context.Hive);
var typeBuilder = builderStep.NewMediaType<EntitySchema, IMediaStore>("testType")                   
               .Define("package", "uploader", "General Properties")
               .Commit();
CmsBuilderStep builderStep=newcmsbuilderstep(context.Hive);
var typeBuilder=builderStep.NewMediaType(“testType”)
.Define(“包”、“上传器”、“一般属性”)
.Commit();
最后,我决定手动创建媒体类型,并使用下面的代码通过代码创建媒体项

        // Creating a new Media item using the scorm package zip file.
        var packageNode = context.Hive.Cms<IContentStore>().NewRevision(packageNodeName, packageNodeName, "testType")
        .SetUploadedFile("package", postedFile)

        // set parent to media root folder - this is what makes it come under media tree
        .SetParent(FixedHiveIds.MediaVirtualRoot)
        .Publish()
        .Commit();
//使用scorm包zip文件创建新媒体项。
var packageNode=context.Hive.Cms().NewRevision(packageNodeName,packageNodeName,“testType”)
.SetUploadedFile(“包”,postedFile)
//将父文件夹设置为媒体根文件夹-这使其位于媒体树下
.SetParent(FixedHiveIds.MediaVirtualRoot)
.Publish()
.Commit();

此操作有效,但生成的介质类型不完整,因为当我尝试使用此类型手动创建介质时,会抛出一个错误“应指定名称”

CmsBuilderStep<IMediaStore> builderStep = new CmsBuilderStep<IMediaStore>(context.Hive);
var typeBuilder = builderStep.NewMediaType<EntitySchema, IMediaStore>("testType")                   
               .Define("package", "uploader", "General Properties")
               .Commit();
CmsBuilderStep builderStep=newcmsbuilderstep(context.Hive);
var typeBuilder=builderStep.NewMediaType(“testType”)
.Define(“包”、“上传器”、“一般属性”)
.Commit();
最后,我决定手动创建媒体类型,并使用下面的代码通过代码创建媒体项

        // Creating a new Media item using the scorm package zip file.
        var packageNode = context.Hive.Cms<IContentStore>().NewRevision(packageNodeName, packageNodeName, "testType")
        .SetUploadedFile("package", postedFile)

        // set parent to media root folder - this is what makes it come under media tree
        .SetParent(FixedHiveIds.MediaVirtualRoot)
        .Publish()
        .Commit();
//使用scorm包zip文件创建新媒体项。
var packageNode=context.Hive.Cms().NewRevision(packageNodeName,packageNodeName,“testType”)
.SetUploadedFile(“包”,postedFile)
//将父文件夹设置为媒体根文件夹-这使其位于媒体树下
.SetParent(FixedHiveIds.MediaVirtualRoot)
.Publish()
.Commit();