2009-07-07 26 views
10

Mới đối với WCF.Giao diện WCF DataContract vs DataContract

Lớp DataContact có thể kế thừa từ Giao diện không?

ví dụ:

[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; } 
} 

Trả lời

3

chắn rằng nó có thể, nhưng lưu ý nếu bạn đang trở về kiểu giao diện, bạn phải xác định thuộc tính KnownTypes cho động cơ deserialization, vì vậy nó có thể deserialize gửi giao diện của bạn ở đầu kia .

+1

Hi Martin .. là có bất kỳ ví dụ tốt về web ở đâu? – Sreedhar

5

Bạn có thể làm điều này:

[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; } 
} 

Bạn không thể làm điều này, thật đáng buồn:

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; } 
} 
Các vấn đề liên quan