SDL*_*per 6 tridion tridion-core-services
我想获取KeywordFieldDefinitionData类型字段的类别的TCM URI.
我使用下面链接的代码来读取组件的元数据字段: -
https://code.google.com/p/tridion-practice/wiki/ChangeContentOrMetadata
我可以在Reference.cs类中看到Category和CategoryFields属性(在给出对核心服务的refence时自动生成)但是在Field类(在上面的code.google链接中定义)中没有定义属性来访问Category和CategoryFields属性.我尝试按以下方式定义属性: -
public System.Reflection.PropertyInfo Category
{
get { return definition.GetType().GetProperty("Category", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic); }
}
Run Code Online (Sandbox Code Playgroud)
即使上面没有工作,你们中的任何人都请分析这个并回复.
提前致谢!
您需要读取每个SchemaField定义数据并检查Type是否为KeywordFieldDefinitionData,然后获取Category信息。请参阅下面的示例片段。
SchemaFieldsData schemaFields = (SchemaFieldsData)_client.ReadSchemaFields(
"tcmuriofschema", true, readOptions);
foreach (ItemFieldDefinitionData schemaField in schemaFields.Fields) {
switch (schemaField.GetType().Name) {
// handle other fields..
// CategoryLink Fields
case "KeywordFieldDefinitionData":
KeywordFieldDefinitionData keywordTextSchemaField = (KeywordFieldDefinitionData)schemaField;
string LinkedCategoryTitle = keywordTextSchemaField.Category.Title;
string LinkedCategoryId = keywordTextSchemaField.Category.IdRef;
break;
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
777 次 |
| 最近记录: |