如何从自定义类添加对我的 Web 服务代理的引用
Posted
技术标签:
【中文标题】如何从自定义类添加对我的 Web 服务代理的引用【英文标题】:How to add a reference to my Web Service Proxy from a Custom Class 【发布时间】:2010-11-15 11:21:27 【问题描述】:我正在创建一个自定义类来抽象出一些重复的 SOAP 标头工作。我想引用我刚刚在自定义类中创建的 Web 服务引用,以便创建它的实例。如何引用?
请注意,我说我正在尝试引用 Web 服务“引用”(在 VS 中单击鼠标右键,我添加了“Web 服务引用”而不是“Web 服务”)。所以我正在尝试创建一个在 MyCustomClass.cs 中创建的代理类的实例
【问题讨论】:
您是使用 Visual Studio 工具创建 Web 引用还是在代码中创建的? 只需右键单击VS(不幸的是现在它是一个网站项目)并选择“添加服务引用” 所以您只是想知道在使用 vs 工具创建代码后如何在代码中获取该引用? 是的,没错,就是这样。 【参考方案1】:创建引用后,您需要在要使用的代码文件中添加 import(vb) 或 using(c#) 语句。之后,您只需实例化 Web 服务类的一个实例。
// add the service reference
using ServiceReference1;
public partial class _Default : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)
//create the instance of the web sevice of the class
SomeWebService sweb = new SomeWebService();
//call the web services HelloWorld Method
sweb.HelloWorld();
希望这就是你想要的
【讨论】:
我在实际发布之前尝试过。我尝试了一个 using 语句,但它仍然不知道它。 using 语句有没有捡到? 问题是,我们即将将此网站项目转换为 WAP。现在虽然它是一个网站项目,所以不确定为什么使用不接受它。我正在使用 [显示在 App_WebReferences 下的 Web 服务引用的名称] 添加,但它仍然无法正常工作 您可以通过任何方式发布代码 sn-p 来说明您是如何尝试执行此操作的吗?【参考方案2】:这更像是网站的怪异之处。我建议网站只用于页面、图片、css、js等,其他任何事情都应该在单独的项目中完成,网站可以引用其他项目。
我避免像瘟疫这样的网站,所以我从来不需要做这项工作,但考虑到网站不会建立。相反,当网站被使用时,各种东西都是即时构建的。网站中不会有 Reference.cs 文件。
【讨论】:
【参考方案3】:在较新版本的 Visual Studio 中,这些 Web 服务引用的 using 语句还必须包含项目名称。
使用cptScarlet的原始代码示例,将第一行更改为如下所示:
// add the service reference
using MyProject.ServiceReference1;
当您输入项目名称时,网络引用中创建的对象的类和/或命名空间应显示在智能感知中。
【讨论】:
@kdmurray:由于他使用的是网站项目,我认为他没有“MyProject”命名空间。以上是关于如何从自定义类添加对我的 Web 服务代理的引用的主要内容,如果未能解决你的问题,请参考以下文章