Добавление ссылки на службу к веб-службе (это все WCF) в Visual Studio создает некоторый сгенерированный код, включая повторное подтверждение на стороне клиента представляемого интерфейса.
Я понимаю, почему создается этот интерфейс: возможно, вы используете стороннюю службу и не имеете доступа к реальному интерфейсу.
Но я согласен, и оба они не совместимы с назначениями, даже если прозрачный прокси действительно точно реализует интерфейс, к которому я хочу привести.
Я могу использовать отражение, но это ужасно. Есть ли какой-нибудь способ победить эту ложную безопасность и ввести метаданные, чтобы я мог использовать интерфейс с классом?
Моя конкретная проблема отходит от нормы сложным образом, связанным с одним клиентом, который напрямую использует некоторые производные базового класса и использует другие удаленно через ссылки на службы. Базовый класс для каждого сервера должен хранить ссылки на подписывающихся клиентов в коллекции для перечисления для уведомления о событиях, и проблема была в типе изменяемой из-за использования прокси.
Ни один из этих ответов не решает мою конкретную проблему, но каждый ответ был поучительным и полезным. Я нашел свое собственное решение (используйте двойное связывание), но я бы никогда не понял его, если бы вы радикально не улучшили мое понимание всего бизнеса.
Три отличных ответа. Как выбрать только один? Я выбираю первое, потому что оно напрямую решает проблему, которую я сначала думал У меня было.