2013-03-16 2 views
1

У меня есть WSDL и XSD в качестве отправной точки. (WSDL генерируется из XSD с использованием инструмента WCSF Blue). Из WSDL с помощью инструмента генерируется код службы. Название проекта - «Autogenerated_Service_Project». Внутри этого проекта будут иметь классы [ServiceContract] и [DataContract]. Он имеет контракт с данными «EmployeeDataContract». В операции сервиса GetEmployee() этот datacontract возвращается клиенту.Структура проекта для разработки первой службы схемы с использованием WCF

У меня есть проект бизнес-уровня под названием «Бизнес-проект». У него есть метод, который возвращает объект объекта Employee.

В настоящее время я имею в виду «Business_Project» внутри «Autogenerated_Service_Project».

Business_Project.MyClass b = new Business_Project.MyClass(); 
EmployeeDataContract d = b.GetAssociate(); 
return EmployeeDataContract; 

Задача возникает, когда происходит изменение WSDl. Когда WSDL будет изменен, «Autogenerated_Service_Project» будет воссоздан, и упомянутый выше код будет потерян.

Каково решение для преодоления этого кода?

Примечание: «Autogenerated_Service_Project» является самым большим проектом. В идеале, он не может быть передан никакими другими проектами.

+0

Я использую Visual Studio 2010 – Lijo

ответ

1

Это может быть разрешено с помощью Partial Classes в другом файле. Код, заданный в вопросе, можно перенести в этот новый файл частичного класса. Этот файл будет сохраняться, даже если автоматически созданный файл будет заново создан.

2

Вы можете изменить способ, призывающую бизнес-слой (может ваше решение требует дополнительного слоя)
Но простым способом, вы можете создать прокси один раз, когда изменения происходят в WSDL обрабатывать изменения вручную, или использовать только инструмент для новых услуг.
Если услуги на WSDL мелкозернистые, решение может быть применимо.

Смежные вопросы