Я создаю пользовательское поведение для WCF, которое может (по соображениям совместимости) работать правильно только тогда, когда служба предоставляет одну конечную точку приложения.
Я хотел бы иметь возможность использовать IServiceBehavior.Validate
< /a>, чтобы убедиться, что служба предоставляет только одну конечную точку приложения. В настоящее время я делаю следующее:
public void Validate(
ServiceDescription serviceDescription,
ServiceHostBase serviceHostBase)
{
if (serviceDescription.Endpoints.Count > 1)
{
throw new InvalidOperationException();
}
}
serviceDescription.Endpoints
, к сожалению, содержит все конечные точки, включая конечную точку IMetadataExchange
. Это приводит к сбою проверки на абсолютно действительных службах.
Мне нужен только способ подсчета конечных точек приложений (не инфраструктурных), но я не могу найти, как сама WCF определяет, какие именно.