.NET 클라이언트에서 SignalR 1.1을 사용하고 있습니다. 나는 BaseMessage 클래스의 객체를 받아 모든 클라이언트에 방송 내 허브에서 하나의 방법이있다 : 클라이언트가있다SignalR에서 파생 객체 직렬화/역 직렬화
_hub.Invoke("SendMessage", new ErrorMessage("Some Error")).Wait();
:이 방법으로 파생 된 메시지를 전달합니다
public void SendMessage(BaseMessage message)
{
Clients.All.BroadCastMessage(message);
}
클라이언트 하나의 메시지 핸들러 :
_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);
그러나 클라이언트가 파생 메시지를 보내면 서버는 기본 메시지를받습니다.
파생 메시지를 수신하려면 serializer를 어떻게 구성해야합니까?
참고 : 직렬화/직렬화를 수동으로 수행하고 문자열을 서버에 전달할 수 있지만 이중 직렬화가 발생합니다.