Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从列表项解析访问群体_C#_Sharepoint_Sharepoint 2010_Target Audience - Fatal编程技术网

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到底是什么?在我看来,这不是一个灵活的解决方案