Рекомендуется при проектировании службы WCF разбивать проект на отдельные сборки:
Сборка SomeProject.ServiceContract
Эта сборка содержит ваш контракт на обслуживание (только интерфейсы).
Пример:
[ServiceContract (...)]
public interface ICan {
[ServiceOperation (...)]
void EatCandies (MyListOfCandies candies);
}
Сборка SomeProject.DataObjects
Эта сборка содержит все ваши объекты данных, которые используются вашимконтракт на обслуживание.
Пример:
[DataObject]
public class MyListOfCandies : List<Candy> {
...
}
В вашем проекте, который использует ваш веб-сервис, сделайте ссылку на сборку "SomeProject.DataObjects", а затем добавьте свой веб-сервис. Вы увидите, что Visual Studio больше не будет генерировать объекты-заглушки, а будет использовать вашу реализацию.
Вы можете сделать то же самое со сборкой ServiceContract. Таким образом, вы все еще можете использовать веб-сервисы, но при изменении интерфейса вы получите ошибки компиляции.