Tôi đang viết dịch vụ WCF đầu tiên của mình. Tôi quyết định viết dịch vụ giống như một DLL để bắt đầu với và sau đó khía cạnh các công cụ WCF trên sau đó là nơi tôi bây giờ.WCF: MessageContract, DataContract ... Confused?
Tôi được kiến trúc sư khuyên rằng tôi nên gắn vào một định dạng cụ thể cho các đối tượng tin nhắn mà tôi đã thực hiện. Tuy nhiên tôi đã sử dụng Giao diện, các loại phức tạp và danh sách của chúng trong các đối tượng tin nhắn của tôi. Tôi đang đến để thêm các thuộc tính trên và tôi nhận được một chút bối rối.
Dưới đây là ví dụ về mã của tôi.
[ServiceContract]
public interface MyServiceContract
{
[OperationContract]
MyMethodResponseMessage MyMethod(MyMethodRequestMessage request);
}
public class MyService : MyServiceContract
{
public MyMethodResponseMessage MyMethod(MyMethodRequestMessage request)
{
//Do things
}
}
//Messages
[MessageContract]
public class MyMethodResponseMessage
{
[MessageBodyMember]
public MyMethodResponse Body { get; set; }
}
[DataContract]
public class MyMethodResponse
{
[DataMember]
public IMyComplexTypeItem { get; set; }
[DataMember]
public List<IMyComplexType> Items { get; set; }
[DataMember]
public bool Success { get; set; }
}
//DTO
public interface IMyComplexType
{
[DataMember]
string Identity { get; set; }
}
[DataContract]
public class MyComplexType1 : IMyComplexType
{
[DataMember]
public virtual string Identity
}
Bất kỳ ai cũng có thể nhận xét về tính chính xác trong việc sử dụng MessageContract, DataContract, DataMember và Serializable etc? Bất kỳ con trỏ hoặc những sai lầm rõ ràng?
Trình serializer nào là trình xử lý tốt nhất để sử dụng? và chiến lược tốt nhất để đảm bảo tôi nhận được XML được định dạng tốt từ điều này để các khách hàng khác có thể sử dụng dịch vụ của tôi dễ dàng như thế nào?
Nhờ Marc, bạn nói đúng về lớp Base. Nó hoạt động tốt hơn một chút. Tôi sẽ xem xét phương pháp OnDeserializing, cổ vũ cho những người đứng đầu về điều đó. Tôi đang bị ràng buộc với Xml cho điều này bằng cách thiết kế. –