我将使用GetListXml方法并指定BluePrintChainFilterData过滤器对象.
var subjectId = "[TCM Uri of your item]";
var filter = new BluePrintChainFilterData
{
Direction = BluePrintChainDirection.Down
};
var subjectBluePrintChainList = coreServiceClient.GetListXml(subjectId, filter);
Run Code Online (Sandbox Code Playgroud)
然后,您仍需要从收到的列表中验证本地化项目.
这不是我原来的答案,可能不完整,因为我没有考虑名称空间,但以下将可以选择本地化(非共享)项目.
var localizedItems = subjectBluePrintChainList.Elements("Item")
.Where(element => "false".Equals(element.Attribute("IsShared").Value, StringComparison.OrdinalIgnoreCase));
Run Code Online (Sandbox Code Playgroud)
我知道的唯一方法是使用搜索功能:
var searchQuery = new SearchQueryData();
searchQuery.BlueprintStatus = SearchBlueprintStatus.Localized;
searchQuery.FromRepository = new LinkToRepositoryData{IdRef = "tcm:0-5-1"};
var resultXml = ClientAdmin.GetSearchResultsXml(searchQuery);
var result = ClientAdmin.GetSearchResults(searchQuery);
Run Code Online (Sandbox Code Playgroud)