类库中的 Web 引用和自定义 Web 服务客户端代理类
更新:2007 年 11 月
在应用程序设计器中,可以将对所引用的项目或程序集中定义的 Web 服务或自定义 Web 服务客户端代理类的 Web 引用表示为 Windows、Office 或 ASP.NET 应用程序上的 Web 服务使用方终结点。若要完成此任务,必须执行某些步骤以使这些元素显示为“间接”类型的 Web 服务使用方终结点以及与 Web 服务使用方终结点的连接。
说明: |
---|
不能通过以下方式来直接添加 Web 服务使用方终结点以表示这些元素:将使用者应用程序连接到 Web 服务提供方终结点并将这些元素移入类库中。 |
但是,在执行这些步骤之前,必须先实现 Web 服务使用者应用程序,并且应用程序项目必须包含应用程序配置文件(Web.config 或 App.config)。有关更多信息,请参见 实现应用程序关系图上的应用程序。
对类库中的 Web 引用和自定义 Web 服务客户端代理类进行反向工程的要求
对于 ASP.NET 应用程序,必须向 Web.config 配置文件中添加适当的项,并且必须存在并找到具有匹配的和完全限定的名称的代理类。但是,对于 Windows 和 Office 应用程序,在 App.config 配置文件中存在这样的项并将它们指定为 WebServiceURL 类型已经足够。不过,如果未用 WebServiceURL 类型指定这些项,或者它们是用 String 类型指定的,那么,也必须存在并找到具有匹配的和完全限定的名称的代理类。有关更多信息,请参见 自定义 Web 服务客户端代理类的注意事项。
如果 Web 服务使用者应用程序引用定义 Web 引用或自定义 Web 服务客户端代理类的类库,则必须将对该类库的项目引用添加到 Web 服务使用者应用程序项目中。但是,应用程序项目的配置文件中的设置将重写类库配置文件中的设置。因此,为了使用在类库配置文件中创建的设置,必须将它们复制到使用者应用程序的配置文件中。有关更多信息,请参见如何:从应用程序关系图上的应用程序引用类库。
满足了这些要求后,应用程序设计器将对这些配置文件项进行反向工程处理,使其成为 Web 服务使用方终结点。此外,如果在这些项中指定的 Web 服务 URL 与现有 Web 服务提供方终结点的 URL 匹配,那么还将显示这些使用者与提供方终结点之间的连接。如果不存在匹配的 Web 服务提供方终结点,但可以通过在 URL 末尾追加“?wsdl”或“?disco”来用 URL 定位 Web 服务的有效 WSDL 文件,那么,外部 Web 服务将添加到应用程序关系图中,并连接到 Web 服务使用方终结点。如果无法使用 URL 来定位 WSDL 文件,则 Web 服务使用方终结点将保持未连接状态。
会影响到间接 Web 服务使用方终结点的更改
进行某些更改将会以下面的方式影响到间接的 Web 服务使用方终结点以及它们的连接:
如果在应用程序关系图中创建或删除与间接 Web 服务使用方终结点的连接,将会在使用者应用程序的配置文件中添加或删除所连接的 Web 服务的 URL。
如果从应用程序关系图中删除间接的 Web 服务使用方终结点,将删除对应的配置文件项,但不会从类库中删除 Web 引用或自定义代理类。
说明: 如果删除间接终结点,请确保应用程序或任何所引用的类库都不再引用对应的配置文件项。
如果删除或重命名 ASP.NET 应用程序所引用的项目或程序集中的代理类,将移除对应的 Web 服务使用方终结点。
发生此结果是因为配置文件项与代理类不再匹配。重新添加具有匹配名称的代理类将导致使用方终结点重新出现。
如果复制并粘贴其 Web 引用驻留在类库或程序集中的 Web 服务使用方终结点,将导致所粘贴的终结点的 Web 引用出现在根项目中。