在Tridion模板类中创建多媒体组件

在Tridion模板类中创建多媒体组件,tridion,Tridion,我试图用下面的代码在Tridion模板类中创建一个多媒体组件 MemoryStream stringInMemoryStream=新的MemoryStream(ascienceODing.Default.GetBytes(“ 测试);; Component xmlMultimediaComponent=新组件(engine.GetSession(),新 TcmUri(“tcm:21-2008-2”); xmlMultimediaComponent.Title=“新的MM组件”; xmlMulti

我试图用下面的代码在Tridion模板类中创建一个多媒体组件

MemoryStream stringInMemoryStream=新的MemoryStream(ascienceODing.Default.GetBytes(“
测试);;
Component xmlMultimediaComponent=新组件(engine.GetSession(),新
TcmUri(“tcm:21-2008-2”);
xmlMultimediaComponent.Title=“新的MM组件”;
xmlMultimediaComponent.Schema=新模式(新TcmUri(“tcm:10-6532-8”),
engine.GetSession());
xmlMultimediaComponent.BinaryContent.MultimediaType=新的MultimediaType(新的
TcmUri(“tcm:0-36-65544”),engine.GetSession();
xmlMultimediaComponent.BinaryContent.MultimediaType.MimeType=“应用程序/xml”;
xmlMultimediaComponent.BinaryContent.MultimediaType.FileExtensions=新列表
{“xml”,“xml”};
xmlMultimediaComponent.BinaryContent.UploadFromStream=stringInMemoryStream;
xmlmediacomponent.BinaryContent.Filename=“testing.xml”.ToLower();
xmlMultimediaComponent.Save();
xmlMultimediaComponent.CheckIn(true);
请注意,“tcm:21-2008-2”是必须在其中创建部件的文件夹tcm ID。 “tcm:10-6532-8”是多媒体模式ID,“tcm:0-36-65544”是多媒体类型ID

但是,似乎存在一些问题,它失败了,错误如下:

指向架构的链接具有无效值。 位于Tridion.ContentManager.Utilities.ThrowInvalidLinkException(Link-Link,KernelException-innerException) 位于Tridion.ContentManager.IdentifiableObject.AssertValidLink(链接) 位于Tridion.ContentManager.IdentifiableObject.AssertValidLink(IEnumerable`1链接) 位于Tridion.ContentManager.IdentifiableObject.AssertValidLinks()处 在Tridion.ContentManager.IdentifiableObject.OnSaving(SaveEventArgs-eventArgs) 位于Tridion.ContentManager.ContentManagement.RepositoryLocalObject.OnSaving(SaveEventArgs-eventArgs) 在Tridion.ContentManager.ContentManagement.VersionedItem.OnSaveing(SaveEventArgs-eventArgs) 位于Tridion.ContentManager.ContentManagement.Component.OnSaving(SaveEventArgs-eventArgs) 在Tridion.ContentManager.IdentifiableObject.Save(SaveEventArgs-eventArgs)中 在Tridion.ContentManager.ContentManagement.VersionedItem.Save(Boolean checkInAfterSave) 在Tridion.ContentManager.ContentManagement.VersionedItem.Save()中

上述错误发生在下面的语句
xmlMultimediaComponent.Save()


知道如何将LinkToMultimedia类型模式id传递给多媒体组件吗

我认为模式ID必须包含上下文发布ID,因此在本例中,10-6532-8应该是21-6532-8


谢谢

我想知道在发布时创建图像的用例是什么……对于自定义需求,需要创建xml多媒体组件而不是图像多媒体组件。是的,您必须始终使用相同的上下文。