Pregunta

Tengo lo siguiente

class A : ISomthing{}

Class B : ISomthing{}

interface ISomthing{}

Class C { public ISomthing _member {get;set}}

e intento enviar el siguiente objeto desde mi cliente .NET SIENSER a mi HUB, estoy usando Signalr 2.0.2

C obj = new C();
obj._member  = new A();

Recibo el siguiente error, no pudo crear una instancia de tipo ISOMTHING.El tipo es una interfaz o clase abstracta y no se puede instanciar.

En mi cliente y el lado del servidor, estoy usando jsonserializer.typenamehandling= typenamehandling.auto;

Actualización: El objeto puede ser serializado por sí mismo, utilizando el Serializador SignalR: VAR TextWriter= nuevo stringwriter (); _hubproxy.jsonserializer.Serialize (TextWriter, OBJ);

¿Fue útil?

Solución

Aparentemente, esto no se admite actualmente, consulte mi pregunta aquí

y la respuesta que tengo: "El dependencyResolver tiene una IPEPARAMETERRESOLVER REGISTRADA QUE ES RESPONSABLE DE DESERIALIZACIÓN DE LOS ENTRADOS DEL SERVIDOR DE DESERIALIZACIÓN. El IPARAMETRESOLVER se implementa por defectoParameterResolver, que no usa el JSOSSERIALIZANTE registrado el dependencyResolver. Msdn.microsoft.com/en-us/library/jj919135(v=vs.118) .aspx "

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top