是否可以从ASP.NET中的内联代码块调用Web服务而无需添加Web引用?如果是的话,你能提供说明吗?
答案 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(); %>
希望它有所帮助。