(будучи примитивным типом, имеющим System.SerializableAttribute и т. д.).
у свой первый сервис 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, чтобы другие клиенты могли легко использовать мой сервис?