2009-07-07 15 views
10

Nuevo en WCF.WCF DataContract frente a la interfaz de DataContract

¿Puede la clase DataContact heredar de la interfaz?

por ejemplo:

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

Respuesta

3

seguro de que puede, pero tener en cuenta si va a devolver el tipo de interfaz que tiene que definir las KnownTypes atribuyen para el motor de deserialización, por lo que podría deserializar su interfaz enviado en el otro extremo .

+1

Hola Martin .. ¿hay alguna buenos ejemplos en la web en alguna parte? – Sreedhar

5

Usted puede hacer esto:

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

No se puede hacer esto, por desgracia:

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; } 
} 
Cuestiones relacionadas