Lync 联系人被组织成组,因此您需要从组级别开始。一旦你有了一个组,你就可以枚举它的联系人
foreach(var group in _client.ContactManager.Groups)
{
foreach (var contact in group)
{
MessageBox.Show(contact.Uri);
}
}
本文适合做背景,还有更高级的功能
编辑:具体来说,对于分发组扩展问题,我认为这里的示例存在缺陷。
不要调用 BeginExpand 并等待 WaitHandle,而是提供一个回调方法来处理 Expand 回调。所以,而不是:
asyncOpResult = DGGroup.BeginExpand(null, null);
asyncOpResult.AsyncWaitHandle.WaitOne();
DGGroup.EndExpand(asyncOpResult);
试试这个:
...
asyncOpResult = DGGroup.BeginExpand(ExpandCallback, DGGroup);
...
public void ExpandCallback(IAsyncResult ar)
{
DistributionGroup DGGroup = (DistributionGroup)ar.AsyncState;
DGGroup.EndExpand(ar);
etc...
}
这对我来说非常有效。