使用 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)
查看问题(文本,而不是代码)我知道您正在尝试将 Complex 对象发送到 JS 端并在那里使用它?那是对的吗?
在这种情况下,解决方案应该很简单:
您可以指定返回类型和参数,包括复杂类型和数组,就像在任何 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 是模型复杂对象的成员。
我希望它有帮助。