C# 如何从列表项解析访问群体
我有一个C# 如何从列表项解析访问群体,c#,sharepoint,sharepoint-2010,target-audience,C#,Sharepoint,Sharepoint 2010,Target Audience,我有一个SPList,它是观众感知的,我需要从SPListItem解析它的观众 string Audiences; public Class1(SPListItem item) { this.Audiences = item[FieldId.AudienceTargeting] as string; } 到目前为止,我已经做到了这一点。我一直在寻找如何解析该项目中的每个受众,但找不到太多帮助 有人知道该怎么做吗?从它看来应该是这样的 public Class1(SPListItem i
SPList
,它是观众感知的,我需要从SPListItem
解析它的观众
string Audiences;
public Class1(SPListItem item)
{
this.Audiences = item[FieldId.AudienceTargeting] as string;
}
到目前为止,我已经做到了这一点。我一直在寻找如何解析该项目中的每个受众,但找不到太多帮助
有人知道该怎么做吗?从它看来应该是这样的
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() 当你想要第一个观众时,这很有用。有了这些台词,我的灵感来自于做这样的事情,这应该会让我拥有一个能吸引所有观众的阵列:
public Class1(SPListItem item)
{
string ID = item[FieldId.AudienceTargeting] as string;
string audiences = audienceTargeting.Split(';')[0];
String[] audiencesArray = audiences.split(',');
}
然后迭代以通过guid获取访问群体
请记住此处所述的受众目标的sintax:
测试后我会确认。我认为从列表中检索受众目标内容的正确方法是执行以下操作
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的变化也会随之变化。36到底是什么?在我看来,这不是一个灵活的解决方案