我正在尝试回复来自lync的传入即时消息。 要发送消息,您应该检查当前的状态,例如:
((InstantMessageModality)_conversation.Modalities[ModalityTypes.InstantMessage]).CanInvoke(
ModalityAction.SendInstantMessage)
问题是,无论我如何尝试,无论如何,它总是返回false。在普通的lync客户端中,我可以回复即时消息,所以这不应该是问题。
我已经注册了所有需要的侦听器,并且我所做的基本上与MSDN页面上显示的完全相同。在回复聊天消息之前,也许我需要做一些事情,但是我还没有弄清楚。
我已经阅读了一些有关自动化(client.GetAutomation()
)的内容,但是我不确定这是否是正确的方法。
public void InstantMessageReceived(object sender, MessageSentEventArgs e)
{
var text = e.Text.Replace(Environment.NewLine, string.Empty);
_trayIcon.BalloonTipText = text;
_trayIcon.ShowBalloonTip(2000);
SendMessage("test");
}
private void SendMessage(string messageToSend)
{
try
{
IDictionary<InstantMessageContentType, string> textMessage =
new Dictionary<InstantMessageContentType, string>();
textMessage.Add(InstantMessageContentType.PlainText, messageToSend);
if (((InstantMessageModality)_conversation.Modalities[ModalityTypes.InstantMessage]).CanInvoke(
ModalityAction.SendInstantMessage))
{
((InstantMessageModality)_conversation.Modalities[ModalityTypes.InstantMessage]).BeginSendMessage(
textMessage,
SendMessageCallback,
textMessage);
}
}
catch (Exception e)
{
MessageBox.Show("Client Platform Exception: " + e.Message, "Send Message");
}
}