2011-01-25 7 views

Odpowiedz

9

Jak pokazano w poniższym podpisem, atrybut DataMember nie jest dziedziczna

[AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field, Inherited = false, 
    AllowMultiple = false)] 
public sealed class DataMemberAttribute : Attribute 

Dlatego sprawia bardzo sensu do dekoracji elementów interfejsu z tego atrybutu, jak będzie trzeba ozdobić klas wykonawczych "członkowie z tym atrybutem też.

-1

Atrybut [DataMember] zastosowany do elementu typu, określa, że ​​element członkowski jest częścią umowy danych. Gdy atrybut ten zostanie jawnie zastosowany do pola lub właściwości, określa, że ​​wartość elementu zostanie przekształcona do postaci szeregowej przez obiekt DataContractSerializer (pobrany z Article)

1

W moim przypadku używam tych atrybutów w moich usługach WCF. Kiedy zrobić interfejs dla usługa WCF robię to zdefiniowanie interfejsu w ten sposób:

Imports System.ServiceModel 
<ServiceContract()> 
Public Interface IClientContract 

    <OperationContract()> 
    Function GetClientList() As IList(Of POCOClients) 

End Interface 

Jak widać, clien tej usługi otrzyma POCOCLient klasę. Następnie muszę udekorować klasę POCOClient atrybutami, o które pytasz, w ten sposób, aby klasa mogła być poprawnie serializowana i wysłać vía WCF.

<DataContract()> 
<MetadataType(GetType(POCOAuthorizedkeys.POCOAuthorizedkeysMetaData))> 
Public Class POCOAuthorizedkeys 

    <DataMember()> 
    <DisplayName("Id")> 
    Public Property Id As Integer 
    <DataMember()> 
    <DisplayName("IdPackage")> 
    Public Property IdPackage As Integer 
    <DataMember()> 
    <DisplayName("AuthorizedKey")> 
    Public Property AuthorizedKey As String 
    <DataMember()> 
    <DisplayName("IdUnthrustedClient")> 
    Public Property IdUnthrustedClient As Nullable(Of Integer) 

End Class 
+1

Niezadowoleni klienci są najgorszymi .. – stuartd