WCF框架为终结点定义了一个专门的ServiceEndpoint类,被定义在System.ServiceModel.Description命名空间中。ServiceEndpoint类包含了EndpointAddress,Binding,ContractDescription三个类型的属性,分别对应Endpoint的Address,Binding,Contract,如下图:
要获取服务的终结点,可以通过抽象类MetadataImporter获取,类的定义如下:
- public abstract class MetadataImporter
- {
- public abstract Collection<ContractDescription> ImportAllContracts();
- public abstract ServiceEndpointCollection ImportAllEndpoints();
- 其它方法略;
- }
在WCF框架中,最重要的一个方法是ImportAllEndpoints(),WCF框架能够获取服务的所有终结点,并返回一个ServiceEndpointCollection类型的对象。该WCF框架为一个终结点集合,可以通过调用ServiceEndpointCollection的Find()方法或FindAll()方法,找到符合条件的一个或多个终结点。它的定义如下:
- public class ServiceEndpointCollection : Collection<ServiceEndpoint>
- {
- public ServiceEndpoint Find(Type contractType);
- public ServiceEndpoint Find(Uri address);
- public Collection<ServiceEndpoint> FindAll(Type contractType);
- 其它成员略
- }