Я пишу свой первый сервис WCF. Я решил написать сервис так же, как и DLL для начала, а затем аспект содержимого WCF потом, где я сейчас.
Мне советовал архитектор, что я должен придерживаться определенного формата для объектов сообщений, которые я сделал. Однако я использовал интерфейсы, сложные типы и списки в моих объектах сообщений. Я прихожу к добавлению атрибутов, и я немного запутался.
Здесь показан пример моего кода.
[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
}
Можно ли прокомментировать правильность использования MessageContract, DataContract, DataMember и Serializable и т.д.? Любые указатели или вопиющие ошибки?
И какой сериализатор лучше всего использовать? и какова лучшая стратегия для обеспечения того, чтобы я получал хорошо сформированный XML из этого, чтобы другие клиенты могли легко использовать мой сервис?