0

オーディエンスを認識している がSPListあり、 からオーディエンスを解析する必要がありSPListItemます。

string Audiences;

public Class1(SPListItem item)
{
  this.Audiences = item[FieldId.AudienceTargeting] as string;
} 

ここまで来ました。アイテムから各オーディエンスを解析する方法を探していましたが、あまり助けが見つかりませんでした。

誰かがそれをすることを知っていますか?

4

3 に答える 3

1

リストからオーディエンス ターゲティングのコンテンツを取得する適切な方法は、次のようにすることだと思います。

string audString = item[fieldId.AudienceTargeting] as string;
string[] audienceIds;
string[] distinguishedNames;
string[] spGroups;
AudienceManager manager = new AudienceManager();
AudienceManager.GetAudienceIDsFromText(audienceAsText, out audienceIds, out distinguishedNames, out spGroups);
var namesList = manager.GetAudienceNames(new ArrayList(globalAudienceID.Select(id => new Guid(id)).ToList()));

このように、文字列の形式が変更された場合、それに応じて GetAudiencEIDsFromText の API が変更されます。

于 2012-06-07T20:06:15.037 に答える
0

これは、最初の Audience が必要な場合に役立ちます。これらの行で、私は次のようなことをするように促されました。これにより、すべての聴衆の配列が得られるはずです:

public Class1(SPListItem item)
{
    string ID = item[FieldId.AudienceTargeting] as string;
    string audiences = audienceTargeting.Split(';')[0];
    String[] audiencesArray = audiences.split(',');

}

そして、GUID によってオーディエンスを取得するために繰り返します。

ここで説明されているように、オーディエンス ターゲットの構文に注意してください: http://www.sharepoint-tips.com/2011/01/setting-target-audiences-with-code.html

テスト後、後で確認します。

于 2011-09-02T09:15:11.667 に答える
0

この記事から、このようになるはずです

public Class1(SPListItem item)
{
     string ID = item[FieldId.AudienceTargeting] as string;
     string NewID = ID.Remove(36);
     Guid guid = new Guid(NewID);
     Audience siteAudience = audManager.GetAudience(guid);
} 

そしておそらく siteAudience.GetMembership();

于 2011-09-01T16:33:14.330 に答える