WCF DataContract与DataContract接口

WCF新手。

DataContact类可以从Interfaceinheritance吗?

例如:

[DataContract(Namespace = ...........)] public class VesselSequence : IVesselSequence { [DataMember] public int AllocationId { get; set; } [DataMember] public string ScenarioName { get; set; } } interface VesselSequence : IVesselSequence { public int AllocationId { get; set; } public string ScenarioName { get; set; } } 

你可以这样做:

 [DataContract(Namespace = ...........)] public class VesselSequence : IVesselSequence { [DataMember] public int AllocationId { get; set; } [DataMember] public string ScenarioName { get; set; } } interface IVesselSequence { int AllocationId { get; set; } string ScenarioName { get; set; } } 

遗憾的是,你不能这样做:

 public class VesselSequence : IVesselSequence { public int AllocationId { get; set; } public string ScenarioName { get; set; } } [DataContract(Namespace = ...........)] interface IVesselSequence { [DataMember] int AllocationId { get; set; } [DataMember] string ScenarioName { get; set; } } 

确定它可以,但请记住,如果要返回接口类型,则必须为反序列化引擎定义KnownTypes属性,以便它可以在另一端反序列化发送的接口。