SignalR 发送对象 - 新手

D-W*_*D-W 5 signalr

使用 Signal R,如果尝试发送对象,传递模型的语法是什么?

private async void FormLoaded(object sender, RoutedEventArgs e)
{
    //Connection stuff...
    Proxy.On("sendHello", () => OnSendDataConnection(ModelBuilder()));
}

private void OnSendDataConnection(ConnectionModel model)
{
    Dispatcher.Invoke(DispatcherPriority.Normal,model?????)
    this.Dispatcher.Invoke((Action)(LoadW));
}
Run Code Online (Sandbox Code Playgroud)

DDa*_*Dan 7

查看问题(文本,而不是代码)我知道您正在尝试将 Complex 对象发送到 JS 端并在那里使用它?那是对的吗?

在这种情况下,解决方案应该很简单:

ASP.NET.SignalR 站点

您可以指定返回类型和参数,包括复杂类型和数组,就像在任何 C# 方法中一样。您在参数中接收或返回给调用者的任何数据都使用 JSON 在客户端和服务器之间进行通信,并且SignalR 会自动处理复杂对象和对象数组的绑定

示例 C#:

    public void SendMessage(string name, string message)
    {
        Clients.All.addContosoChatMessageToPage(new ContosoChatMessage() { UserName = name, Message = message });
    }
Run Code Online (Sandbox Code Playgroud)

JS:

    var contosoChatHubProxy = $.connection.contosoChatHub;
    contosoChatHubProxy.client.addMessageToPage = function (message) {
        console.log(message.UserName + ' ' + message.Message);
    });
Run Code Online (Sandbox Code Playgroud)

ContosoChatMessage 在哪里:

   public class ContosoChatMessage
   {
       public string UserName { get; set; }
       public string Message { get; set; }
   }
Run Code Online (Sandbox Code Playgroud)

(继续阅读示例...)

所以基本上,在 JS 中,一旦收到“模型”,您应该能够使用“model.XY”,其中 XY 是模型复杂对象的成员。

我希望它有帮助。