2
我正在使用SignalR 1.1和.NET客戶端。 我在我的輪轂,其接受BaseMessage類的一個對象,並將其廣播到所有客戶機的方法,包括:在SignalR中序列化/反序列化派生對象
public void SendMessage(BaseMessage message)
{
Clients.All.BroadCastMessage(message);
}
客戶端將通過衍生消息到這個方法:
_hub.Invoke("SendMessage", new ErrorMessage("Some Error")).Wait();
客戶端具有一個單消息處理程序:
_hub.On<BaseMessage>("BroadCastMessage", OnMessageReceived);
我在應用程序啓動時指定TypeNameHandling.All串行器設置:
var settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All};
var serializer = new JsonNetSerializer(settings);
GlobalHost.DependencyResolver.Register(typeof(IJsonSerializer),() => serializer);
但是,當客戶端發送派生消息時,服務器會收到基礎消息。
我應該如何配置串行器才能夠接收派生消息?
注意:我可以手動執行序列化/反序列化並將字符串傳遞給服務器,但這會導致雙重序列化。