如何使用C#和客户端对象模型从人员选取器字段获取电子邮件地址

时间:2014-02-06 16:38:40

标签: c# sharepoint client-object-model peoplepicker

我正在使用CAML检索一些sharepoint列表项。列上是PeoplePicker控件。如何从此列中提取电子邮件地址?

我知道如何获取LookupValue和LookupID,但不知道电子邮件。

FieldUserValue usvSM1 = i["Account"] as FieldUserValue;
Console.WriteLine(usvSM1.LookupValue);

请记住,我正在针对客户端对象模型进行编程。

非常感谢!

2 个答案:

答案 0 :(得分:4)

试试这个:

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);

答案 1 :(得分:0)

        FieldUserValue [] fTo = oListItem["People picker field name"]  as FieldUserValue[];
            var userTo = clientContext.Web.SiteUsers.GetById(fTo[0].LookupId);
            clientContext.Load(userTo);
            clientContext.ExecuteQuery();
            headers.To.Add(userTo.Email);