Piszę moją pierwszą usługę WCF. Postanowiłem napisać tę usługę, tak jak na początku DLL, a potem przejrzeć zawartość WCF, która jest teraz, gdzie jestem teraz.WCF: MessageContract, DataContract ... Confused?
Zostałem poinformowany przez architekta, że powinienem trzymać się określonego formatu dla obiektów wiadomości, które zrobiłem. Jednak w moich obiektach wiadomości użyłem interfejsów, typów złożonych i ich list. Zamierzam dodać atrybuty i jestem trochę zdezorientowany.
Oto przykład pokazujący mój kod.
[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
}
Czy każdy może komentować poprawność w użyciu MessageContract, DataContract, DataMember i Serializable itp? Jakieś wskazówki lub rażące błędy?
Który serializer jest najlepszy do użycia? i jaka jest najlepsza strategia, aby zapewnić, że otrzymam dobrze sformatowany XML z tego, aby inni klienci mogli łatwo korzystać z mojej usługi?
Dzięki Marc, masz rację o klasie Base. Działa to trochę lepiej. Rzucę okiem na metodę OnDeserializing, okrzyki na ten temat. Jestem ograniczony do Xml dla tego projektu. –