C# 具有抽象属性的MassTransit对象
我在MassTransit工作。我有以下情况:C# 具有抽象属性的MassTransit对象,c#,json,json.net,rabbitmq,masstransit,C#,Json,Json.net,Rabbitmq,Masstransit,我在MassTransit工作。我有以下情况: public abstract class MyBase { public string PropertyA {get;set;} } public class MyClass1 : MyBase { public string PropertyB {get;set;} } public class MyClass2 : MyBase { public string PropertyC {get;set;} } p
public abstract class MyBase {
public string PropertyA {get;set;}
}
public class MyClass1 : MyBase {
public string PropertyB {get;set;}
}
public class MyClass2 : MyBase {
public string PropertyC {get;set;}
}
public class MyMessage {
public string PropertyD { get; set; }
public MyBase PropertyE { get; set; }
}
我试图发布的是MyMessage
对象
它似乎在出版商身上运行良好,但在消费者身上却不起作用
我得到的错误是:
无法创建MyBaseClass类型的实例。类型是一个接口
或抽象类,无法实例化
这对我来说很有意义
是否有任何选项强制MassTransit根据具体类型决定哪一类
编辑:
同样的类型在DataService中运行良好,在DataService中它也被序列化和反序列化 错误是否来自Newtonsoft.Json?是的,它是:在Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateNewObject…那么我假设这与MassTransit没有真正的关系,是吗?一旦你让JSON.Net反序列化JSON,它就会工作。。。您可以从错误队列中获取JSON。事实上,我会尝试改用接口,但如果您还想将所有派生类属性反序列化,这可能并不适用于您。您可以查看: