WCF DataContract与DataContract接口

Sre*_*har 10 c# wcf

WCF新手.

DataContact类可以从Interface继承吗?

例如:

[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; }
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*van 5

你可以这样做:

[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; }
}
Run Code Online (Sandbox Code Playgroud)

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

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; }
}
Run Code Online (Sandbox Code Playgroud)


Mar*_*ser 3

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