我正在为 WCF 创建一个自定义行为,它只能(出于互操作性原因)在服务公开单个应用程序端点时才能正常工作。
我希望能够使用该IServiceBehavior.Validate
方法来检查服务是否只公开了一个应用程序端点。目前我正在做以下事情:
public void Validate(
ServiceDescription serviceDescription,
ServiceHostBase serviceHostBase)
{
if (serviceDescription.Endpoints.Count > 1)
{
throw new InvalidOperationException();
}
}
serviceDescription.Endpoints
不幸的是包含所有端点,包括IMetadataExchange
端点。这会导致验证在完全有效的服务上失败。
我需要的是一种仅计算应用程序(非基础设施)端点的方法,但我无法找到 WCF 本身如何确定哪些是哪些。