Я знаю, что этот вопрос задан до here, но все же я не уверен, что выбрать.Предоставление услуг внешним системам - Как мне разработать контракт?
Мое обслуживание будет называться от многих сторонних систем на предприятии. Я почти уверен, что информация, которую служба будет собирать (MyBigClassWithAllInfo), изменится во время жизни продукта. Разве хорошая идея разоблачить объекты?
Это в основном то, что мои две альтернативы:
[ServiceContract]
public interface ICollectStuffService
{
[OperationContract]
SetDataResponseMsg SetData(SetDataRequestMsg dataRequestMsg);
}
// Alternative 1: Put all data inside a xml file
[DataContract]
public class SetDataRequestMsg
{
[DataMember]
public string Body { get; set; }
[DataMember]
public string OtherPropertiesThatMightBeHandy { get; set; } // ??
}
// Alternative 2: Expose the objects
[DataContract]
public class SetDataRequestMsg
{
[DataMember]
public Header Header { get; set; }
[DataMember]
public MyBigClassWithAllInfo ExposedObject { get; set; }
}
public class SetDataResponseMsg
{
[DataMember]
public ServiceError Error { get; set; }
}
Файл XML будет выглядеть следующим образом:
< XML версия = " 1,0 " кодирования = " UTF-8 "? > < Сообщение > < Заголовок > <InfoAboutTheSender> ... </InfoAboutTheSender > </Header > <StuffToCollectWithAllTheInfo> <stuff1> ... </stuff1 > </StuffToCollec tWithAllTheInfo > </Сообщение >Любая мысль о том, как эта услуга должна быть реализована?
Благодаря Larsi
Ну, вы получили это абсурдно правильно (о пистолете). Я не уверен, что вы делаете по вариантам? Предполагаете, что я использую какое-то общее поле1, поле2, поле3 вместе с полем типа сообщений? В настоящее время мой сервис будет собирать около 30 полей, и я ожидаю, что он будет расти. – Larsi
Да. Итак, то, что вы открываете миру, будет чем-то вроде хэш-карты. Затем, как только вы создадите такую открытую структуру xml, вы можете проверить поля, типы и т. Д. На основе передаваемой версии сообщения. –
Кроме того, проверьте сообщение Уди Дахана по обслуживанию и управлению версиями контрактов по адресу http: // www .udidahan.com/2009/04/10/назад-совместимости почему-самые-управления версиями-проблемы-arenrsquot / – lasseeskildsen