Ý nghĩa của việc đặt DataMemberAttribute vào thành viên giao diện là gì? Điều này ảnh hưởng đến các lớp học có nguồn gốc như thế nào?Có nghĩa là gì khi đặt DataMemberAttribute vào thành viên giao diện?
Trả lời
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á.
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)
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
Những khách hàng không tin cậy này là tồi tệ nhất .. – stuartd
- 1. 'Giao diện người dùng phong phú' có nghĩa là gì?
- 2. "Chương trình giao diện, không triển khai" nghĩa là gì?
- 3. Định nghĩa các hằng số trong giao diện là gì?
- 4. Điều gì có nghĩa là khi một hàm thành viên dễ bay hơi?
- 5. giao diện tĩnh trong java là gì?
- 6. đặt giao diện glade vào python
- 7. Cách tạo giao diện .NET với các thành viên tĩnh?
- 8. Tại sao chúng ta sử dụng giao diện thành viên?
- 9. '#type' có nghĩa là gì trong Giao diện chức năng nước ngoài của Haskell?
- 10. Triển khai tất cả thành viên giao diện
- 11. Không phải thành viên công cộng cho giao diện C#
- 12. Có nghĩa là gì khi có một tham chiếu không xác định cho một thành viên tĩnh?
- 13. Nếu một phương thức trả về một giao diện, nó có nghĩa là gì?
- 14. "Giao diện công thức chuẩn cho một data.frame" có nghĩa là gì trong R?
- 15. Thuộc tính/biến thành viên trong giao diện?
- 16. Khi nào cần giao diện?
- 17. /([^.]*)\.(.*)/ có nghĩa là gì?
- 18. Ký tự đại diện có nghĩa là gì trong makefile?
- 19. Ý nghĩa của "Lõi" là hậu tố tên thành viên
- 20. \ u003C có nghĩa là gì?
- 21. Giao diện cục bộ/từ xa và không có giao diện trong EJB là gì?
- 22. Ý nghĩa của Giao dịch là gì?
- 23. Biến số thành viên giao diện Java 8 (trước khi phát hành)
- 24. Giao diện thông thạo là gì?
- 25. "\\. \", "\ ?? \", "\\? \", "\\" có nghĩa là gì?
- 26. Có nghĩa là gì?
- 27. Cách tốt nhất để có được giao diện điều khiển-đầu vào trong Java là gì?
- 28. Ràng buộc có nghĩa là gì?
- 29. "javascript: //" có nghĩa là gì?
- 30. Ý nghĩa của các biến tĩnh trong việc triển khai giao diện là gì?
http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datamemberattribute.aspx –