多媒体链接的方法与组件链接的方法相同。它也适用于内容和元数据字段:此示例在文件夹元数据中设置 mm 组件链接,其中 md 模式包含一个名为“versioned_component”的可嵌入字段,其中包含一个名为“component”的字段,这是一个多媒体组件链接字段:
this.OpenSession();
try
{
//itemUri is the MM Component uri
var currentItem = (ComponentData)session.Read(itemUri, new ReadOptions());
LinkToRepositoryData ltrd = currentItem.LocationInfo.ContextRepository;
var pd = (PublicationData)session.Read(ltrd.IdRef, new ReadOptions());
String currentPublicationWebdavURL = pd.LocationInfo.WebDavUrl;
String schemaUri = string.Format(FOLDER_MD_SCHEMA_WEBDAVURL,
HttpUtility.UrlDecode(currentPublicationWebdavURL));
//schemaUri = HttpUtility.UrlEncode(schemaUri);
var sd = (SchemaData)session.Read(schemaUri, new ReadOptions());
FolderData folder = new FolderData();
folder.Id = TcmUri.UriNull;
folder.Title = "hidden_" + Guid.NewGuid().ToString();
var rootFolder = (FolderData)session.Read(
currentItem.LocationInfo.OrganizationalItem.IdRef,
new ReadOptions());
folder.LocationInfo= new LocationInfo()
{
OrganizationalItem = new LinkToOrganizationalItemData(){
IdRef = rootFolder.Id
}
};
folder.MetadataSchema = new LinkToSchemaData()
{
IdRef = sd.Id,
};
string sMetadata = "<Metadata xmlns=\"{0}\" xmlns:xlink=\"{1}\"> "
+ " <version_component>"
+ " <component xlink:type=\"simple\" "
+ " xlink:href=\"{2}\" xlink:title=\"{3}\" />"
+ " </version_component> "
+ "</Metadata>";
sMetadata = string.Format(sMetadata, sd.NamespaceUri,
Tridion.Constants.XlinkNamespace,
currentItem.Id.ToString(), currentItem.Title);
folder.Metadata = sMetadata;
folderUri = session.Save(folder, new ReadOptions()).Id.ToString();
return folderUri;
}
finally {
this.CloseSession();
}
希望这也有帮助,