你可以使用Visual Studio 2005来导入服务元数据并且生成一个代理。如果服务是自宿主的,那么首先要启动该服务,然后从客户端工程的上下文菜单中选择"Add Service Reference…"。如果服务宿主在IIS或WAS上,那么就不需要预启动该服务了。
有趣的是,如果服务是自宿主在与客户端工程同一个方案中的另一个工程中,那么你可以在Visual Studio 2005中启动宿主并且仍然添加参考,因为不同于大多数工程设置,这个选项是无法禁止的(见图6)。这会导致调出"Add Service Reference"对话框,你需要在其中提供服务的基地址(或一个基地址和一个MEX URI)以及包含代理的命名空间。
图6.你可以使用Visual Studio 2005生成一个代理。 Visual Studio 2005使用SvcUtil.exe命令行工具,并且你可以自己使用它。主要理由是,你可以使用SvcUtil开关所提供的众多的选项。为了直接使用SvcUtil,你可以提供给它MEX地址并且,作为选择,还可以提供一个代理文件名。默认的代理文件名是实现该服务的服务端类的名字。例如,当把服务MyService宿主在IIS中时,简单地运行下列命令行: