2011-01-25 23 views

Trả lời

9

Như trong chữ ký sau đây, thuộc tính DataMember là không thừa kế

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

Do đó, nó làm cho cảm giác rất ít để trang trí các thành viên giao diện với thuộc tính này là bạn sẽ phải trang trí các lớp thực hiện 'các thành viên với thuộc tính này quá.

-1

Thuộc tính [DataMember], khi được áp dụng cho thành viên của một loại, chỉ định rằng thành viên là một phần của hợp đồng dữ liệu. Khi thuộc tính này được áp dụng cho một trường hoặc thuộc tính một cách rõ ràng, nó chỉ định rằng giá trị thành viên sẽ được tuần tự hóa bởi đối tượng DataContractSerializer (lấy từ Article)

1

Trong trường hợp này, tôi sử dụng thuộc tính này với các dịch vụ WCF của tôi. Khi tôi thực hiện một giao diện cho một Webservice WCF tôi làm điều đó xác định một giao diện theo cách này:

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

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

End Interface 

Như bạn có thể thấy, clien của dịch vụ này sẽ nhận được một lớp POCOCLient. Sau đó, tôi cần phải trang trí lớp POCOClient với các thuộc tính bạn đang yêu cầu hình thức theo cách này để cho lớp được serialized đúng và gửi 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

Những khách hàng không tin cậy này là tồi tệ nhất .. – stuartd

Các vấn đề liên quan