【发布时间】:2014-02-26 06:43:15
【问题描述】:
我有以下
class A : ISomthing{}
Class B : ISomthing{}
interface ISomthing{}
Class C { public ISomthing _member {get;set}}
我尝试将以下对象从我的 .net signalR 客户端发送到我的集线器,我正在使用 signalR 2.0.2
C obj = new C();
obj._member = new A();
我收到以下错误,无法创建 ISomthing 类型的实例。类型是接口或抽象类,不能实例化。
在我的客户端和服务器端,我使用 JsonSerializer.TypeNameHandling = TypeNameHandling.Auto;
更新: 该对象可以自己序列化,使用 signalR 序列化器: var textWriter = new StringWriter(); _hubProxy.JsonSerializer.Serialize(textWriter, obj);
【问题讨论】:
-
你的代码不正确——
object是C#中的保留字,所以改成C obj = new C(); -
我也有同样的问题。手动使用序列化程序,但在调用 hub 时不能。从 C# 客户端调用到 C# 服务器。
标签: c# json signalr signalr-hub