Модальности диалога, ModalityAction.SendInstantMessage, всегда возвращают false - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь отправить ответ на входящее мгновенное сообщение от lync. Чтобы отправить сообщение, вы должны проверить текущий статус модальности, в моем случае:

((InstantMessageModality)_conversation.Modalities[ModalityTypes.InstantMessage]).CanInvoke(
                    ModalityAction.SendInstantMessage)

Дело в том, что что бы я ни пытался, оно всегда возвращает ложь, несмотря ни на что. В обычном клиенте 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");
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...