coreservicesを使用してフォルダからコンポーネントのみを取得する方法


1

サブフォルダとコンポーネントを持つフォルダがあります。今私は指定されたスキーマを使用するコンポーネントだけを取得したいと思います。私はそれをコアサービスを使ってやっていますか?

using System.Xml.Linq; 
using Tridion.ContentManager.CoreService.Client;    

... 

      string folderUri = ""; 
      string schemaUri = ""; 

      OrganizationalItemItemsFilterData filter = new OrganizationalItemItemsFilterData(); 
      filter.ItemTypes = new ItemType[] { ItemType.Component }; 
      filter.ComponentTypes = new ComponentType[] { ComponentType.Normal }; 
      filter.Recursive = true; 

      XElement items = Client.GetListXml(folderUri, filter); 
      foreach (XElement item in items.Elements()) 
      { 
       ComponentData component = Client.Read(item.Attribute("ID").Value, null) as ComponentData; 

       if (component.Schema.IdRef.Equals(schemaUri)) 
       { 

        // Do something with components of specific schema 

       } 

      } 

クライアント変数の型がSessionAwareCoreServiceClientは次のとおりです。

6

はこのような何かを試してみてください。あなたは似た何かがすでにポストに頼まれたhttp://codedweapon.com/2013/03/changing-components-schemas-with-core-service/

上記のブログ上のコードのより詳細な説明を見つけることができますGet all component from selected folder and subfolder based on Schema