У меня проблема с версиями с контрактом на обслуживание WCF, в котором одна из многих конечных точек, вызываемых для операции, пропускает один из методов из договора.Могу ли я узнать, какие методы WCF поддерживаются на конечной точке перед вызовом?
Мой вопрос: как я могу убедиться, что команда доступна на клиенте, прежде чем пытаться позвонить?
Я пробовал:
foreach (var od in proxy.Endpoint.Contract.Operations)
{
if (od.Name == "MyMethodName")
{
hasMethod = true;
break;
}
}
К сожалению, это использует контракт от вызывающего приложения и фактически не описывает реализацию на самой конечной точке. В результате он возвращает true, даже если конечная точка не выполнила команду.
Спасибо. К сожалению, мы здесь в каком-то обратном сценарии. Клиентам был предоставлен интерфейс и попросили реализовать его с помощью сервиса. Мы, как хост, вызываем их (это одна конечная точка), и поэтому у нас нет возможности реализовать управление версиями для новых методов, поскольку в этом случае они являются сервером, а не нами. Кроме того, я думаю, что мы создавали наши сервисы для обслуживания Mex только для создания начальных прокси через svcutil. Мы не подталкиваем конфигурации Mex к производству. – devlord