У меня проблема с пространствами имен, используемыми моими ссылками на службы. У меня есть несколько служб WCF, скажем, с пространством имен MyCompany.Services.MyProduct (фактические пространства имен длиннее).
В рамках продукта я также предоставляю образец веб-сайта C# .NET. Это веб-приложение использует пространство имен MyCompany.MyProduct.
Во время первоначальной разработки сервис был добавлен как ссылка проекта на веб-сайт и используется напрямую. Я использовал фабричный шаблон, который возвращает экземпляр объекта, реализующий MyCompany.Services.MyProduct.IMyService. Все идет нормально.
Теперь я хочу изменить это, чтобы использовать фактическую ссылку на службу. После добавления ссылки и ввода MyCompany.Services.MyProduct в текстовом поле пространства имен создаются классы в пространстве имен MyCompany.MyProduct.MyCompany.Services.MyProduct. ПЛОХО! Я не хочу менять директивы using в нескольких местах только потому, что использую прокси-класс. Поэтому я попытался добавить к пространству имен global::, но это не принято.
Обратите внимание, что я еще даже не удалил исходные ссылки на сборки, а «повторное использование типов» включено, но, по-видимому, повторное использование не проводилось. Однако я не хочу хранить ссылки на сборки на своем тестовом веб-сайте, чтобы он все равно работал.
Единственное решение, которое я придумал до сих пор, — установить пространство имен по умолчанию для моего веб-приложения на MyCompany (поскольку оно не может быть пустым) и добавить ссылку на службу как Services.MyProduct. Предположим, что клиент хочет использовать мой пример веб-сайта в качестве отправной точки и меняет пространство имен по умолчанию на OtherCompany.Whatever, это, очевидно, нарушит мой обходной путь.
Есть ли хорошее решение этой проблемы?
Подводя итог: я хочу создать прокси-сервер ссылки на службу в исходном пространстве имен без ссылки на сборку.
Примечание. Я видел этот вопрос, но не было решения, приемлемого для моего варианта использования.
Изменить: как предложил Джон Сондерс, я отправил отзыв в Microsoft по этому поводу:
Элемент отзыва @ Microsoft Connect