从应用程序关系图上的应用程序引用类库
在应用程序设计器中,可以在应用程序关系图上表示从应用程序到类库的引用。虽然应用程序设计器不支持对应用程序关系图上的类库进行设计或直接表示,但您可将 ASP.NET Web 服务用作类库实现的功能的外观表示。然后,就可以将其他应用程序对这些类库的引用,反向工程处理为从这些应用程序到该 Web 服务的连接。
下面的列表给出了完成此任务所需的步骤:
-
向您的解决方案添加 ASP.NET Web 服务,并从类库引用该 Web 服务。
-
从使用者应用程序引用该类库,使用者应用程序可以为应用程序关系图中已经存在的或添加到其中的 ASP.NET 应用程序、Windows 应用程序或 Office 应用程序。
-
将类库配置文件中的相应条目复制到使用者应用程序配置文件中。
这些步骤反向工程处理使用者应用程序中的 Web 服务使用者终结点和到 ASP.NET Web 服务的连接。
提示 |
---|
您还可以使用此方法,将类库中定义的 Web 引用或自定义 Web 服务客户端代理类可视化为应用程序关系图上的 Web 服务使用者终结点和连接。但是,在应用程序设计器中,不能通过先设计 Web 服务使用者终结点然后添加相应的配置文件项来表示这些元素。有关更多信息,请参见 类库中的 Web 引用和自定义 Web 服务客户端代理类。 |
从类库引用 Web 服务
-
打开应用程序关系图 (.ad) 文件。
-
向关系图中添加 ASP.NET Web 服务。
提示 有关更多信息,请参见 如何:在应用程序关系图中定义应用程序。
利用此 Web 服务,其他应用程序可通过使用该 Web 服务来引用类库。
-
在关系图上,选择现有 Windows 或 ASP.NET 应用程序作为使用者应用程序,或者添加新的使用者应用程序。
-
如果尚未实现 ASP.NET Web 服务和使用者应用程序,则请实现它们。
注意 有关更多信息,请参见 如何:实现应用程序关系图上的应用程序。您必须先实现 ASP.NET Web 服务,然后才能将 Web 服务引用添加到类库。同样必须实现使用者应用程序,然后才能编辑其配置文件。
使用者应用程序将使用类库功能来调用 Web 服务。
-
如果需要,可向解决方案中添加新的或现有的类库项目。
注意 类库项目中必须要有 App.config 文件,以便在添加 Web 引用时,可向其中添加相应的配置文件条目。
-
如果类库中、ASP.NET Web 服务中或使用者应用程序项目中没有该配置文件,则请向类库项目中添加相应的配置文件(App.config 或 Web.config)。
提示 若要添加配置文件,请在解决方案资源管理器中选择项目节点,然后从“项目”菜单中选择“添加新项”,接着在“添加新项”对话框中根据需要选择“应用程序配置文件”或“Web 配置文件”。
-
在解决方案资源管理器中,选择类库项目节点,然后从“项目”菜单中选择“添加 Web 引用”。
-
在“添加 Web 引用”对话框中,单击“此解决方案中的 Web 服务”,选择您创建的 Web 服务,然后单击“添加引用”。
在解决方案资源管理器中,Web 服务引用将被添加到类库项目中的“Web 引用”文件夹中。
-
在解决方案资源管理器中,选择类库项目节点,然后从“生成”菜单中选择“生成 <类库名>”。
提示 还可以右击项目节点,然后选择“生成”。添加完新 Web 引用后,请先重新生成类库,然后再复制配置文件条目和添加类库引用。否则,如果在复制了配置文件条目和向使用者应用程序添加了类库引用后,最后一步才生成类库,则 Visual Basic 或 Visual J# 类库中的 Web 服务引用可能将不进行反向工程处理。有关更多信息,请参见应用程序关系图疑难解答。
现在可以向使用者应用程序添加类库引用了。
提示 |
---|
如果向项目中添加完 Web 引用后,类库项目中的配置文件丢失或被删除,您可以向该项目中添加新的配置文件。但 Web 引用不会自动添加到该配置文件中。您需要从项目中移除 Web 引用,然后再将它们添加回项目中,此操作将创建一个包含对应于所添加 Web 引用的条目的新配置文件。 |
从使用者应用程序引用类库
-
在解决方案资源管理器中,选择使用者应用程序项目节点,然后选择以下操作之一:
-
若是 Windows 或 Office 应用程序,请从“项目”菜单中选择“添加引用”。
-
若是 ASP.NET 应用程序,请从“网站”菜单中选择“添加引用”。
提示 还可以右击根项目节点,然后选择“添加引用”。
-
-
在“项目”选项卡上,选择类库项目,然后单击“确定”。
将类库配置文件中的条目复制到使用者应用程序配置文件中
-
打开类库项目中的 App.config 文件和使用者应用程序项目中的配置文件。
-
从类库的 App.config 文件中,复制 <configSections> 和 <applicationSettings> 节中的以下条目。
注意 如果目标配置文件中没有起封闭作用的 <configSections> 或 <applicationSettings> 标记,则请同时复制这些标记。如果要复制多个类库的条目,则请只复制一组“applicationSettings”<sectionGroup> 标记。
<configSections> <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=VersionNumber, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <section name="ClassLibraryName.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> </sectionGroup> </configSections> <applicationSettings> <ClassLibraryName.Settings> <setting name="ClassLibraryName_WebServiceProxyClassName" serializeAs="String"> <value>http://WebServiceURL.asmx</value> </setting> </ClassLibraryName.Settings> </applicationSettings>
-
在使用者应用程序的配置文件中,将复制的条目粘贴到紧接着 <configuration> 标记的 <configuration> 节中。
-
在解决方案资源管理器中,选择根解决方案节点,然后从“生成”菜单中选择“生成解决方案”。
提示 还可以右击根解决方案节点,然后选择“生成解决方案”。
在应用程序关系图上,使用者应用程序上的 Web 服务使用者终结点将进行反向工程处理,并连接到 ASP.NET Web 服务。
在出现以下情况时,Web 服务引用的反向工程处理可能会出错:
-
如果 Windows 项目和 ASP.NET Web 项目引用同一类库,则 Web 服务引用的反向工程处理可能会出错。
若要解决此问题,请关闭应用程序关系图,然后从 Windows 项目和 ASP.NET Web 项目中移除对共享类库的引用。之后,先向 ASP.NET Web 项目中添加该类库引用,接着打开应用程序关系图,然后再向 Windows 项目添加该类库引用。有关更多信息,请参见应用程序关系图疑难解答。
-
如果使用者应用程序引用了多个类库,且其中每个类库都含有一个对不同 Web 服务的 Web 引用,则 Visual Basic 或 Visual J# 类库中的 Web 服务引用的反向工程处理可能会出错。
若要解决此问题,请更新受影响类库中的所有 Web 引用。依次右击每个受影响类库中的每个 Web 引用,选择“更新 Web 引用”,然后重新生成整个解决方案。添加完新的 Web 引用和重新生成相应类库后,请再次重新生成整个解决方案,以反向工程处理这些 Web 引用。