Ereditarietà e servizi WCF

Scritto da  Alessandro Mostarda il mercoledì 28 luglio 2010  •  Linguaggio: C#,VB   • Livello: 200


Esporre una classe base, come parametro di un metodo di un servizio WCF e stabilire quali classi, di quelle che ereditano, possono essere passate come parametro:

C#
Classe di base (esposta come parametro):

[Serializable]
[KnownType(typeof(Rettile))]
[KnownType(typeof(Volatile))]
[DataContract]
public abstract class Animale
{
[DataMember]
public int Id { get; set;}
}


Classi derivate

[DataContract]
public class Rettile : Animale
{
[DataMember]
public string Colore { get; set; }
}

[DataContract]
public class Volatile: Animale
{
[DataMember]
public int LunghezzaAli { get; set; }
}

 

VB.NET
Classe di base (esposta come parametro):

<Serializable()> _
<KnownType(GetType(Rettile))> _
<KnownType(GetType(Volatile))> _
<DataContract()> _
Public MustInherit Class Animale
<DataMember()> _
Public Property Id() As Integer
End Class


Classi derivate

<DataContract()> _
Public Class Rettile
Inherits Animale
<DataMember()> _
Public Property Colore() As String
End Class

<DataContract()> _
Public Class Volatile
Inherits Animale
<DataMember()> _
Public Property LunghezzaAli() As Integer
End Class

 


Tags: WCF,KnownType

 
x