我使用Lync SDK 2013并尝试检查是否有新的对话传入或传出。我不想只检查音频/视频通话,我想检查每种方式类型。
private void Conversation_Added(object sender, ConversationManagerEventArgs e)
{
Conversation conversation = e.Conversation;
IDictionary<ModalityTypes, Modality> modalities = conversation.Modalities;
bool conversationIsIncoming = modalities.Any(modality => modality.Value.State == ModalityState.Notified);
}
当事件被触发并涉及Any
方法时,我会收到此错误
NullReferenceException 对象引用未设置为对象的实例。 System.Collections.Generic.KeyValuePair.Value.get 返回null。
因此,显然我必须在此处使用null检查,但也许整个代码可能是错误的?如何检查对话是传入还是传出?
答案 0 :(得分:1)
您的想法基本上是正确的,但是当您检查通知的状态时是错误的。
您需要挂钩ModalityStateChanged事件,并且如果您只想了解音频/视频“呼叫”,则也只需挂钩具有AudioVideo方式类型的对话。
例如
1400 -> N
3 -> no of denominations
500
1000
2000
Output: 1500 2
当您不再需要了解状态更改时,别忘了从ModalityStateChanged上摘机。