До тех пор, пока имя и (XML) пространство имен вашего сервисного контракта не изменятся - точно! Службы WCF действительно не заботятся о внутренностях .NET о том, как они реализованы.
Это работает до тех пор, пока клиентская сторона подключается к вашему сервису с использованием стандартного метода Add Service Reference
(опрос метаданных службы для создания отдельного прокси на стороне клиента) - в этом случае прокси на стороне клиента имеет нет знания каких-либо пространств имен .NET на стороне службы ... вы можете изменить их на стороне службы и повторно развернуть файлы службы - клиент продолжит работу.
Единственное место, в котором вам нужно выполнить настройку, - это конфигурация вашей сервисной стороны (в web.config
, если вы используете хостинг в IIS, в app.config
вашего хостера в противном случае):
атрибут name=
тега <service>
имеет полное имя класса .NET для класса обслуживания (включая пространство имен .NET)
атрибут contract=
тега <endpoint>
содержит полное имя типа .NET контракта на обслуживание (включая пространство имен .NET)
Это не работает, очевидно, если вы совместно используете общую сборку с контрактом на обслуживание - в этом случае клиентская сторона будет привязана к пространству имен .NET этих файлов контракта в общей сборке, и если они изменятся, клиент больше не будет работать ..