此示例演示如何实现服务配置文件的层次结构。它还演示如何从层次结构中较高的级别继承绑定、服务行为和终结点行为。
示例详细信息
为 .NET Framework 版本 4 中的 WCF 开发的功能之一是分层配置模型中的改进。分层配置模型的一个示例是通过 Machine.config -> Rootweb.config -> Web.config 定义的模型。在 .NET Framework 4 中,那些在配置层次结构的较高级别中定义的绑定和行为将添加到没有显式配置的服务中。此示例演示如何通过依赖于在计算机或应用程序级别定义的配置元素来简化服务配置。
此示例包括 9 个服务,这些服务分别在三个层次结构级别定义。Service1
位于根级别。Service2
和 Service3
继承 Service1
中的默认元素。Service4
、Service5
、 Service6
和 Service7
在层次结构的第三层定义,继承 Service3
中的默认元素。最后,Service10
和 Service11
位于层次结构的第四层。
所有这些服务都实现 IDesc
协定。下面是 IDesc
接口的定义,它显示了此接口中公开的方法。IDesc
接口在 Service1.cs 中定义。
// Define a service contract
[ServiceContract(Namespace="http://Microsoft.Samples.ConfigHierarchicalModel")]
public interface IDesc
{
[OperationContract]
List<string> ListEndpoints();
[OperationContract]
List<string> ListServiceBehaviors();
[OperationContract]
List<string> ListEndpointBehaviors();
}
服务对这些方法的实现非常简单。ListEndpoints
循环访问所有服务终结点,并返回该服务拥有的所有终结点的列表。ListServiceBehaviors
循环访问添加到该服务的所有行为,并返回与该服务关联的所有服务行为的列表。ListEndpointBehaviors
的行为与 ListServiceBehaviors
类似,但它返回终结点行为的列表。
通过此实现,客户端可以知道服务公开了多少终结点,以及哪些服务行为和终结点行为已添加到该服务中。已作为该示例的一部分实现的客户端在该解决方案中添加一个对所有服务的服务引用,并为每个服务显示这些元素。
使用此示例
运行客户端
使用 Visual Studio 2010 打开 ConfigHierarchicalModel.sln 文件。
客户端项目尚未设置为启动项目,请执行下列步骤。
在**“解决方案资源管理器”中,右击该解决方案,然后选择“属性”**。
在**“通用属性”中,选择“启动项目”,然后单击“单启动项目”**。
从**“单启动项目”下拉列表中选择“客户端”**。
单击**“确定”**关闭对话框。
若要生成示例,请按 F6。
若要运行客户端,请按 Ctrl+F5。
![]() |
---|
如果这些步骤不起作用,则通过以下步骤来确保已正确设置环境。
|
![]() |
---|
您的计算机上可能已安装这些示例。在继续操作之前,请先检查以下(默认)目录:
<安装驱动器>:\WF_WCF_Samples
如果此目录不存在,请访问针对 .NET Framework 4 的 Windows Communication Foundation (WCF) 和 Windows Workflow Foundation (WF) 示例(可能为英文网页),下载所有 Windows Communication Foundation (WCF) 和 WF 示例。此示例位于以下目录。
<安装驱动器>:\WF_WCF_Samples\WCF\Basic\Services\ConfigHierarchicalModel
|