在asp.net内联代码块中调用Web服务

时间:2009-06-18 17:13:57

标签: asp.net web-services

是否可以从ASP.NET中的内联代码块调用Web服务而无需添加Web引用?如果是的话,你能提供说明吗?

3 个答案:

答案 0 :(得分:1)

一般来说,内联代码可以做任何代码背后的代码都可以做,代码背后的代码只是更清洁和分离文件。

首先需要包含在创建WebService代理时为您生成的正确名称空间。

命名空间包含代码在内联代码的情况下略有不同,这里是一个示例

<%@ Import Namespace="System.IO" %>

如果你想阅读有关差异的信息编码恐怖有great article关于它

答案 1 :(得分:1)

在另一个C#项目(例如控制台应用程序)中添加Web引用。然后切换到“显示所有文件”。您将找到一个隐藏的.cs文件,其中包含为您创建的实际Web服务代理。 (还有一个命令行工具可以做同样的事情,但我忘记了名字)

您可以将生成的类复制到.aspx到<script runat="server">块。

虽然我不知道你真正需要什么;)你不能访问网络应用程序的源代码吗?

另一种解决方案是为Web代理创建.NET dll,然后使用Assembly.Load()动态加载此程序集。动态调用方法并不漂亮。

答案 2 :(得分:0)

如果您的App_Code文件夹中有Web服务的代码文件(* .cs),则不需要任何引用,使用等。但是,如果Web服务不是您项目中的本地服务,或者您没有在App_Code文件夹中单独的.cs文件中的代码,您将需要一个Web引用。

根据我的经验,我刚刚使用了我的一个Web服务的Web方法:

<%= new MyWebService().MyWebMethod(); %>

希望它有所帮助。