创建 XML Web services 方法

- 中国WEB开发者网络 (http://www.webasp.net)
-- 技术教程 (http://www.webasp.net/article/)
--- 创建 XML Web services 方法 (http://www.webasp.net/article/28/27107.htm)
-- 作者:未知
-- 发布日期: 2005-11-24

当创建托管代码中的 XML Web services 时,您通过将 WebMethod 属性放置在 Public 方法的方法声明之前指示在该 XML Web services 中可用的方法。虽然 Private 方法可以在同一个类中,并且 XML Web services 代码可以调用它们,但是 Private 方法不能用作 XML Web services 的入口点。WebMethod 属性必须应用于每个作为 XML Web services 的一部分可用的公共方法。有关更多信息,请参见asp">定义 XML Web services 方法。

下面的过程假定您正在使用类的公共方法,该类是 XML Web services 的实现。有关更多信息,请参见asp">托管代码中的 XML Web services 的代码模型。

创建 XML Web services 方法

  1. 在“解决方案资源管理器”中选择您的 .asmx 文件(例如,Service1.asmx)。在“视图”菜单上,单击“代码”以查看代码隐藏文件。或者,在“解决方案资源管理器”中右击 .asmx 文件,然后在快捷菜单上单击“查看代码”。
    注意   默认情况下,“解决方案资源管理器”隐藏代码隐藏文件。在“解决方案资源管理器”工具栏中单击“显示所有文件”可查看隐藏文件。或者,在“项目”菜单上单击“显示所有文件”。

    .asmx 文件在 .asmx 文件的 WebService 处理指令的 Class 属性中指定作为 XML Web services 实现的类。下面是一个示例:

    ' Visual Basic
        <%@ WebService Language="vb" Codebehind="Service1.asmx.vb"
        Class="WebService1.Service1" %>
        // C#
        <%@ WebService Language="c#" Codebehind="Service1.asmx.cs"
        Class="WebService1.Service1" %>

    如果您重命名该类,一定也要在 WebService 指令的 Class 属性中更改类名。

  2. 将公共方法添加到 .asmx 文件的 WebService 处理指令的 Class 属性中指定的类,如下所示:
    ' Visual Basic
        Public Class Service1
        Inherits System.Web.Services.WebService
            <System.Web.Services.WebMethod()> _
            Public Function ConvertTemperature(ByVal dFahrenheit As Double) _
                                               As Double
                ConvertTemperature = ((dFahrenheit - 32) * 5) / 9
            End Function
        End Class
        // C#
        public class Service1 : System.Web.Services.WebService
        {
            [System.Web.Services.WebMethod()]
            public double ConvertTemperature(double dFahrenheit)
            {
               return ((dFahrenheit - 32) * 5) / 9;
            }
        }

    将 WebMethod 属性附加到 Public 方法表示希望将该方法公开为 XML Web services 的一部分。有关更多信息,请参见asp">托管代码中的 XML Web services 的代码模型。


webasp.net