C# 如何使用C和客户端对象模型从PeoplePicker字段获取电子邮件地址
我正在使用CAML检索一些sharepoint列表项。列的另一端是PeoplePicker控件。如何从本专栏中提取电子邮件地址 我知道如何获取LookupValue和LookupID,但不知道如何获取电子邮件C# 如何使用C和客户端对象模型从PeoplePicker字段获取电子邮件地址,c#,sharepoint,sharepoint-clientobject,peoplepicker,C#,Sharepoint,Sharepoint Clientobject,Peoplepicker,我正在使用CAML检索一些sharepoint列表项。列的另一端是PeoplePicker控件。如何从本专栏中提取电子邮件地址 我知道如何获取LookupValue和LookupID,但不知道如何获取电子邮件 FieldUserValue usvSM1 = i["Account"] as FieldUserValue; Console.WriteLine(usvSM1.LookupValue); 请记住,我是针对客户机对象模型编程的 非常感谢 试试这个: var user = web.Site
FieldUserValue usvSM1 = i["Account"] as FieldUserValue;
Console.WriteLine(usvSM1.LookupValue);
请记住,我是针对客户机对象模型编程的
非常感谢 试试这个:
var user = web.SiteUsers.GetById(usvSM1.LookupId);
context.Load(user);
context.ExecuteQuery();
Console.WriteLine(user.Email);
编辑:
Web.SiteUsers属性仅适用于SharePoint 2013客户端对象模型
您可以尝试获取用户的第二种方法:
var user = web.EnsureUser(usvSM1.LookupValue);
context.Load(user);
context.ExecuteQuery();
Console.WriteLine(user.Email);
试试这个:
var user = web.SiteUsers.GetById(usvSM1.LookupId);
context.Load(user);
context.ExecuteQuery();
Console.WriteLine(user.Email);
编辑:
Web.SiteUsers属性仅适用于SharePoint 2013客户端对象模型
您可以尝试获取用户的第二种方法:
var user = web.EnsureUser(usvSM1.LookupValue);
context.Load(user);
context.ExecuteQuery();
Console.WriteLine(user.Email);
谢谢Yevgeniy-我认为SiteUsers不能与客户端对象模型一起使用。[链接]嗯,您使用的是哪一版本的SharePoint?SharePoint 2013似乎具有此属性,但SharePoint 2010没有。检查这里,酷的东西!:这很好用。我认为我的组织将在今年某个时候升级到SP2013——不仅仅是现在。非常感谢,是的!!:hi@Yevgeniy.Chernobrivets,如果两名员工的显示名称保持不变怎么办?例如:约翰·史密斯和约翰·史密斯,但他们的电子邮件有johns1@domain.com和johns2@domain.com,那么,sharepoint在识别的人员/电子邮件时是否存在冲突?如何处理这种情况感谢Yevgeny-我认为SiteUsers不能与客户端对象模型一起使用。[链接]嗯,您使用的是哪一版本的SharePoint?SharePoint 2013似乎具有此属性,但SharePoint 2010没有。检查这里,酷的东西!:这很好用。我认为我的组织将在今年某个时候升级到SP2013——不仅仅是现在。非常感谢,是的!!:hi@Yevgeniy.Chernobrivets,如果两名员工的显示名称保持不变怎么办?例如:约翰·史密斯和约翰·史密斯,但他们的电子邮件有johns1@domain.com和johns2@domain.com,那么,sharepoint在识别的人员/电子邮件时是否存在冲突?如何处理此情况此处如何获取显示名和修剪的登录名?Title抛出了一个错误r。这里如何获取显示名和修剪后的登录名?Title抛出一个错误r。