C# 属性

C# 抽象

C# 字符串

C# 泛型

C# 杂项

C# 新特性

C# Web Services in C# 中的 Web 服务

介绍

Web 服务被称为软件程序。这些服务使用 XML 在通用互联网协议的帮助下与其他软件交换信息。简单来说,我们使用 Web 服务通过 Internet 与对象进行交互。

以下是有关 Web 服务的一些要点。

  1. Web 服务不依赖于任何特定的语言。

  2. Web 服务是独立于协议的。

  3. Web 服务是独立于平台的。

  4. Web 服务被称为无状态架构。这些服务仅依赖于给定的输入。

  5. Web 服务也是可扩展的。

  6. Web 服务基于 XML(开放的、基于文本的标准)。

Web 服务中使用的技术

XML: Web 服务仅指定数据。因此,了解有关编程语言或平台的XML的应用程序可以以不同的方式格式化 XML。

SOAP:服务和应用程序之间的通信由SOAP建立。

WSDL: WSDL 为我们提供了一种统一的方法,有助于将 Web 服务指定给其他程序。

UDDI:借助 UDDI,我们可以搜索 Web 服务注册中心。

在部署这些技术时,这允许开发人员以服务的形式将应用程序打包并在网络上发布服务。

网络服务的优势

  1. Web 服务始终使用开放的、基于文本的标准。Web 服务使用所有这些组件,即使它们是用各种语言为不同平台编写的。

  2. Web 服务促进了编程的模块化方法,以便多个组织可以与同一个 Web 服务进行通信。

  3. Web Services 易于实现但成本高,因为它们使用现有的基础设施,我们可以将大多数应用程序重新打包为 Web Service。

  4. Web 服务降低了企业应用程序集成和 B2B 通信的成本。

  5. Web 服务是可互操作的组织,它包含 100 个供应商并促进它们的互操作性。

Web 服务的局限性

Web 服务的限制是:

  1. Web Services的局限之一是需要开发SOAP、WSDL、UDDI。

  2. 对互操作性的支持也是Web Service 的局限性。

  3. Web 服务的限制也是版税。

  4. 如果我们想在高性能的情况下使用 web 服务,那么 web 服务会很慢。

  5. Web 服务的使用增加了网络上的流量。

  6. Web 服务的安全级别较低。

  7. 我们使用标准程序来描述特定网络服务的质量。

  8. Web 服务的标准处于草案形式。

  9. 供应商保留特定标准的知识产权也是网络服务的限制。

Web 服务示例

Web 服务几乎可以完成任何类型的任务。

门户网站:门户网站用于从链接的网络服务中获取头条新闻。

天气报告:对于天气报告,我们将使用天气报告网络服务在我们的网站上显示有关天气的信息

股票行情:有关股票行情的最新信息可以在我们的网站上显示。

新闻头条:通过使用新闻头条网络服务,我们可以在我们的网站上显示最新更新的新闻。

我们可以制作我们的网络服务,并可以让它们重新使用。这里我们举个例子,比如我们可以为公司广告制作带有页脚的免费短信发送服务。因此,每当任何人使用此服务时,他们都会间接宣传我们的公司。为了利用 Web 服务,我们可以应用 N 种想法。

为了首先创建 Web 服务,我们将考虑一个场景。要创建任何 Web 服务,首先,我们必须了解为什么需要 Web 服务。

Web服务的必要性

我们将考虑一个我们想在我们的网站上展示的场景。在我们的网站上,我们希望展示有关地区、国家和国际的信息。在这里,如果我们考虑为所有这些功能编写代码,那么编写所有这些功能的代码将花费大量时间和精力。一些现有网站已经提供了上述所有信息,因此在这种情况下,我们希望使用其他网站的当前逻辑。但是出现了一个问题,我如何在我的应用程序中使用现有的逻辑。

这个问题的解决方案是Web 服务

通过使用Web Service,我们可以重用别人的业务逻辑,而不是复制这个。要使用别人的业务逻辑,我们只需要写几行代码就可以了。这种技术类似于 API、DLL 和插件的库。

API库和 Web 服务之间的唯一区别是 Web 服务位于远程另一台服务器上。

Web 服务可以被其他应用程序调用。Web 服务被称为业务逻辑的一部分,托管在互联网上,其他应用程序可以使用它们。

这里我们有一些关于 Web 服务的要点。

注意 1:Web 服务不仅限于 .Net Framework。Web 服务的标准在.NET 发布之前就已经定义好了。Web 服务并由 Microsoft 以外的供应商提供支持。

注:2:Web Services也可以跨平台工作。如果服务是用一种语言编写的,那么尽管如此,其他应用程序仍可以使用这些服务,并且该应用程序使用了另一种语言。如果我们想使用 Web 服务,唯一的方法是我们只需要在我们将发出 HTTP 请求的地方连接互联网。

正如我们所知,Web 服务是跨平台的,但尽管如此,应该有一种可理解的语言,以便我们可以对服务发出请求并在其响应中获得服务。Web 服务使用易于理解的 XML。

这是使用基于 XML 的数据交换标准构建 Web 服务的唯一原因。

Web 服务使用数据集类型。XML Schema 很容易识别这些数据类型。

Web 服务使用简单的数据类型,如字符串和数字。这些数据类型有助于与 Web 服务进行通信。而且我们不能发送专有的.NET对象,如图像、FileStream 或 EventLogs。其他编程语言无法联系这些 .NET 对象。如果我们使用一些设备将它们发送给客户端,不同的编程语言仍然无法解释。

注意:3 如果我们想使用 .NET 对象,我们可以使用 .NET 远程处理。.NET 远程处理被称为分布式技术,通过它我们可以使用.NET 对象。但是非.NET 客户端不能使用它。

Web 服务支持的数据类型。

  • 内置类型(基本):
    Web 服务使用的 数据类型是:
    Web 服务使用内置的 C# 数据类型,如 short、int、long、short、float、char、byte、string 和 DateTime。

  • 对象: WPF 使用用户定义类的对象。尽管该类包含方法,但该类将无法传输到客户端。

  • 数组: WPF 使用任何支持的数据类型(内置或自定义)的数组。我们也可以使用 WPF 中的 ArrayList。

  • 枚举: WPF 支持枚举。对于枚举的值,WPF 使用字符串名称。WPF 不会使用整数。

  • XmlNode:基于 System.Xml.XmlNode 的对象代表 XML 文档的一部分。我们可以使用 XmlNode 发送任意 XML。

DataSet 和DataTable: WPF 支持dataSet 和DataTable,但WPF 不支持DataColumns 和DataRows 等ADO.NET数据对象。

创建网络服务

一个简单的 asmx 页面被称为 Web 服务。对于 Web 服务的创建,我们将使用 Visual Studio 2017,它使用 .NET Framework 4.8。为了创建 Web 服务,我们将遵循以下步骤:

第 1 步:首先,我们将创建一个用于创建 Web 服务的 Web 应用程序。

为此,我们将单击“文件”->“选择项目”,如下面的屏幕截图所示:

如何创建网络服务

之后,新窗口将打开,如下图所示:


从这里,我们将选择 Web->Asp.Net Web 应用程序->Web 应用程序的名称-> 单击确定。

如何创建网络服务

在此之后,将向我们显示一个新窗口,如下所示:

如何创建网络服务

为了创建 Web 服务,我们将右键单击项目名称-> 单击添加-> 添加新项。如下图所示:

如何创建网络服务

在此之后,将出现一个新窗口。我们必须从那里单击 Web-> 选择 Web 服务(.asmx 页面)-> 为 Web 服务命名,如下面的屏幕截图所示:

如何创建网络服务

将 Web Service 添加到应用程序后,将出现一个新窗口,如下所示:

如何创建网络服务

Visual Studio 创建不可更改的 Web 服务 - Visual Studio 中使用的模板分析。

默认代码说明

[网络服务(命名空间= http://tempuri.org/”))]

基于XML 的Web 服务要求客户端应用程序具有唯一的名称空间,这有助于将Web 服务与Web 上的其他服务区分开来。Web 服务使用默认命名空间,即 tempura.org。此命名空间可用于正在开发中的 XML Web 服务。即将发布的 XML Web Services 应该使用永久命名空间。Web Services 的实例应该用其他URI 替换它,这在生产系统中更有意义。

我们将Web Service标识为Web Service中使用的命名空间;它的公司将控制名称空间。这里我们以公司的 Internet 域名为例,我们可以将其用作命名空间的一部分——XML Web 服务的命名空间,它看起来像 URL。我们使用 URL 来指出 Web 上的实际资源。

注意事项:

下面是创建 Web 服务时应该注意的一些要点。

  • 我们不能有多个 [WebService] 标签。

  • 命名空间的改变不会影响命名空间。

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

Web 服务不支持直接方法重载。为了允许 Web 服务中的方法重载,我们必须添加 MessageName 属性以区分 Web 服务中使用的一个方法与另一个方法,后者具有相同的名称和使用的参数。

[WebServiceBinding(ConformsTo= WsiProfiles.BasicProfile1_1)] 到 [WebServiceBinding (ConformsTo = WsiProfiles.None)]。

例子 (Example)

[WebMethod]  
        public int SumOfNums(int FirstNumber, int SecondNumber)  
        {  
            return FirstNumber + SecondNumber;  
        }  
  
//这里我们将使用 MessageName 属性来区分这两种方法。  
        [WebMethod(MessageName = "SumOfFloats")]  
  
        public float SumOfNums(float FirstNumber, float SecondNumber)  
        {  
            return FirstNumber + SecondNumber;  
        }

如果我们想从脚本调用 Web 服务,我们将使用ASP.NETAJAX并取消注释下面的行。

[System.Web.Script.Services.ScriptService]

[网络方法]

此属性始终在方法的顶部使用。我们把这个属性写在 Web Service 中。[WebMethod] 属性用于定义使用该属性的方法暴露给用户/客户端访问。

如果我们去掉这个属性,那么客户端将无法看到方法的细节;因此他们无法实施。

代理类或 WSDL

WSDL(Web Service Development Language)文档用于生成Web Service的代理类。WSDL 文档定义了 Web 服务。WSDL 文档包含

  1. Web 服务公开的所有方法。

  2. WSDL 文档包含参数及其类型。

  3. WSDL 文档包含方法的返回类型。

Visual Studio 使用这些信息来创建代理类。客户端应用程序将调用代理类方法。代理类将参数序列化,准备 SOAP 请求消息并将其发送到 Web 服务。Web Service 执行此方法并将 SOAP 返回消息返回给 Proxy。然后代理类将反序列化 SOAP 响应消息并将其提供给客户端应用程序。不需要将 dot net CLR 对象序列化或反序列化为 SOAP 格式或从中反序列化。代理类负责序列化和反序列化,这使开发人员的工作变得轻松。

现在我们将看到 WebService1.asmx.cs 窗口:

1. WebService.asmx.cs页面包含System.Web.Services,它还包含Visual Studio 在Web 应用程序中包含的其他四个名称空间。

2. “Service1”类继承自“System.Web.Services.WebServices”“System.Web.Services.WebService”继承类后,我们可以访问内置的 ASP.Net 对象,例如(Application、Session、User、Context、Server)。如果不需要.NET 的内置对象,那么也不需要来自“WebService”的服务类。

3. “Service1”包含“WebService”属性。如果我们想将任何类暴露为服务,那么还需要包含“WebService”的属性。

WebService属性包含不同的属性,例如:

命名空间:使用命名空间属性使服务具有唯一可识别性。nameSpace 是 XML 的属性。客户端应用程序可以包含不同的服务,所以这就是可能发生冲突的原因。为避免冲突,提供者有责任使名称空间唯一。

名称:通过使用名称属性,我们将为服务提供描述性名称。

说明:此属性用于避免对服务进行简短说明。

4. “Service1”还包含另一个属性,即“WebServiceBinding”。这用于指示服务的标准。如果服务不遵循此标准,我们将获得异常。

5. 对于服务,添加了一个属性,即“[System.Web.Script.Services.ScriptService]”,用于使服务可以从客户端脚本访问,服务应该用这个服务来装饰。

6. “Service1”类包含一个方法“Hello World”。此方法用“[WebMethod]”属性修饰。客户端应用程序访问服务方法。客户端应用程序应添加“Service1”方法。

服务可能会使用某种方法来实现内部功能。客户端应用程序不需要使用它们。没有必要将这些方法与 Web Method 属性一起使用。

WebMethod 属性包含 Name 和 Description 属性,我们可以使用它们分别提供自描述名称或描述。

加价

现在我们将看到标记。

对于标记,我们必须在解决方案资源管理器窗口中右键单击 Service1.asmx,然后选择视图标记,如下面的屏幕截图所示:

如何创建网络服务

在 Service1.asmx 中,我们将看到服务使用带有属性的 WebService 指令。从这里,这将向我们展示应用程序调用服务,而不是由最终用户调用。因此 asmx 页面没有标记。

Service1.asmx

例子 (Example)

<%@ WebService Language="C#" CodeBehind="Service1.asmx.cs" Class="WebApplication7.Service1" %>

下面是关于 Service1.asmx 的一些要点。

  • “Web 服务”指令:该指令表明 asmx 页面是一个 web 服务。

  • "Language"="C#":表示服务使用C#语言。

  • “CodeBehind”:此属性对 ASP.NET 或 Web 服务没有任何作用。CodeBehind 是 Visual Studio 的属性。此属性用于将 asmx 页面与页面后面的代码进行映射。

  • “类”属性包含类的限定名称。这是Service的入口,就像C语言中的main()一样。

现在我们将在按下按钮 F5 后运行此应用程序。各不相同)。此处将找到服务说明的链接,如下面的屏幕截图所示:

如何创建网络服务

单击服务描述的链接后,这会将我们重定向到服务的 WSDL 文档,如下面的屏幕截图所示:

如何创建网络服务

还有另一个指向 HelloWorld 的链接。单击此链接后,我们将重定向到测试页面。

如何创建网络服务

单击此链接后,我们将重定向到 Service1 Web 服务页面进行测试。

如何创建网络服务

网络服务的实施

现在我们将实现该服务。现在我们将解决方案资源管理器中的文件“Service1”重命名为“MyService”。这里我们将类名从 Service1 更改为 MyService。现在我们将打开标记 (.asmx) 页面。

如何创建网络服务

从上面的屏幕截图中,我们将看到 visual Studio 无法解析类属性中的“Service1”。这里的类显示了服务的完全限定名称,我们将 Service1 类重命名为 MyService,但 Visual Studio 无法解析它。

在这里,我们将类的属性更改为“Web application.MyService”,并将“CodeBehind”属性从“Service1.asmx.cs”更改为“MyService.asmx.cs”,就像我们命名文件一样。

MyService.asmx

例子 (Example)

<%@ WebService Language="C#" CodeBehind="MyService.asmx.cs" Class="WebApplication7.MyService" %>

MyService.asmx.cs

例子 (Example)

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Web;  
using System.Web.Services;  
using System.Web.Script.Serialization;  
  
  
namespace WebApplication7  
{  
    /// <summary>  
    /// Summary description for Service1  
    /// </summary>  
    [WebService(Namespace = "http://tempuri.org/";)]  
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
    [System.ComponentModel.ToolboxItem(false)]  
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.   
    [System.Web.Script.Services.ScriptService]  
    public class MyService : System.Web.Services.WebService  
    {  
  
        [WebMethod]  
        public int SumOfNums(int First, int Second)  
        {  
            return First + Second;  
        }  
    }  
}

在此之后,服务就可以使用了。现在我们将编译并运行这个应用程序。

编译完成后,将打开一个新窗口,如下图所示:

如何创建网络服务

Web 服务的测试

现在我们将通过单击 F5 按钮来运行该应用程序。http://localhost:62639/MyService.asmx页面将打开。该页面将包含服务描述(WSDL 文档、Web 服务文档)的链接,并包含 SumOfNums 的另一个链接。此页面是 SumOfNums 方法的测试页面,如下图所示:

如何创建网络服务

现在我们将使用 OOP (Object Oriented Programming Concept) 概念方法重载。现在我们在 MyService 类中添加 WebMethod。

MyService.asmx.cs

例子 (Example)

using System;  
using System.Collections.Generic;  
using System. Linq;  
using System. Web;  
using System.Web.Services;  
using System.Web.Script.Serialization;  
  
  
namespace WebApplication7  
{  
    /// <summary>  
    /// Summary description for Service1  
    /// </summary>  
    [WebService(Namespace = "http://tempuri.org/";)]  
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
    [System.ComponentModel.ToolboxItem(false)]  
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.   
    [System.Web.Script.Services.ScriptService]  
    public class MyService : System.Web.Services.WebService  
    {  
          
  
  
        [WebMethod(MessageName = "SumOfFloats")]  
  
        public float SumOfNums(float First, float Second)  
        {  
            return First + Second;  
        }  
  
    }  
}

现在我们将通过按下按钮 F5 来运行该应用程序。http://localhost:62639/MyService.asmx页面将打开,其中包含服务描述(WSDL 文档、Web 服务文档)的链接。这里我们有另一个链接 SumOfNums,它是 SumOfNums 方法的测试页面,如下面的屏幕截图所示:

如何创建网络服务

在第一个文本框和第二个文本框中输入值后,将调用如下屏幕截图所示的方法:

如何创建网络服务

方法重载

现在我们将在服务中使用重载方法。Web 服务不支持方法重载。在方法重载的情况下,这将引发错误。这里我们以一个例子来说明在Web Service 中完成方法重载并抛出一个错误,因为它不支持重载。

MyService.asmx.cs

例子 (Example)

using System;  
using System.Collections.Generic;  
using System. Linq;  
using System. Web;  
using System.Web.Services;  
using System.Web.Script.Serialization;  
  
  
namespace WebApplication7  
{  
    /// <summary>  
    /// Summary description for Service1  
    /// </summary>  
    [WebService(Namespace = "http://tempuri.org/";)]  
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
    [System.ComponentModel.ToolboxItem(false)]  
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.   
    [System.Web.Script.Services.ScriptService]  
    public class MyService : System.Web.Services.WebService  
    {  
  
        [WebMethod]  
        public int SumOfNums(int First, int Second)  
        {  
            return First + Second;  
        }  
  
  
        [WebMethod(MessageName = "SumOfFloats")]  
  
        public float SumOfNums(float First, float Second)  
        {  
            return First + Second;  
        }  
  
    }  
}

输出

如何创建网络服务

在上面的示例中,Web Service 不支持方法重载并显示服务“WebApplication7.MyService”不符合 WS-I Basic Profile v1.1 的错误消息。现在要支持重载方法,我们必须遵循以下步骤,或者我们必须删除“[ WebServiceBinding (ConformsTo = WsiProfiles.BasicProfile1_1 )]”,或者我们必须进行一些更改“[WebServiceBinding(ConformsTo = WsiProfiles.None)” ]”。

为了支持重载方法,我们必须对代码进行一些更改,如突出显示的框所示:

例子 (Example)

using System;  
using System.Collections.Generic;  
using System. Linq;  
using System. Web;  
using System.Web.Services;  
using System.Web.Script.Serialization;  
  
  
namespace WebApplication7  
{  
    /// <summary>  
    /// Summary description for Service1  
    /// </summary>  
    [WebService(Namespace = "http://tempuri.org/";)]  
    //make the WsiProfiles to None   
    [WebServiceBinding(ConformsTo = WsiProfiles.None)]  
    [System.ComponentModel.ToolboxItem(false)]  
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.   
    [System.Web.Script.Services.ScriptService]  
    public class MyService : System.Web.Services.WebService  
    {  
  
        [WebMethod]  
        public int SumOfNums(int First, int Second)  
        {  
            return First + Second;  
        }  
  
//here we have to add the MessageName property to make the difference between both of the methods.    
        [WebMethod(MessageName = "SumOfFloats")]  
  
        public float SumOfNums(float First, float Second)  
        {  
            return First + Second;  
        }  
  
    }  
}

在所有这些更改之后,Web 服务将如下面的屏幕截图所示:

如何创建网络服务

这里的web服务支持同名方法。通过添加消息名称属性,我们可以创建这两种方法之间的差异。

通过使用上述属性,我们可以在Web Service 中使用方法重载。

页面测试

单击 SumOfFloats 后,页面将重定向到http://localhost:62639/MyService.asmx?op=SumOfFloats在这里我们将看到“?op=SumOfNums”附加到服务 URL。此页面包含用于两个输入值(First、Second)的两个文本框,其中 SumOfNums 值将作为输入参数和“调用”按钮。单击此调用按钮后,我们将重定向到http://localhost:62639/MyService.asmx/SumOfFloats,它具有 SumOfNums 方法返回 XML 格式的值。

如何创建网络服务

单击调用按钮后,我们将重定向到http://localhost:62639/MyService.asmx/SumOfFloats页面。此页面包含 XML 格式的值。

如何创建网络服务

同样,在单击“SumOfNums MessageName="SumOfFloats"" 之后。我们将重定向到“http://localhost:62639/MyService.asmx?op=SumOfFloats”。因此,客户端应用程序的“SumOfNums MessageName =”SumOfFloat“”方法被称为“SumOfFloats”。

这里有一个问题来自测试页的来源。因为我们没有添加 Mark-up,但是页面还是被渲染了。

测试页面不是 Web 服务的一部分。测试页由 ASP.NET 使用网页 c:\[WinDir]\Microsoft 呈现。NET\Framework\ [版本] \Config\DefaultWsdlHelpGenerator.aspx。“反射”概念呈现给测试页面。

WSDL 文档

Web 服务是自描述的,这意味着 ASP.Net 本身以 WSDL 文档的形式为我们提供了客户端使用 Web 服务所需的所有信息。WSDL 文档告诉客户端 Web 服务中存在的方法。以及该方法使用的参数和返回值以及客户端应用程序如何与它们通信。WSDL 是一种 XML 标准。

Web 服务的托管

对于 Web 服务的托管,我们将添加对服务的引用并从不同的应用程序中使用它。这里我们假设端口号可以变化,所以现在我们将在 IIS(Internet 信息服务器)上托管服务以获取服务器的特定地址。为此,我们将打开 Internet Information Server-> 转到默认网站-> 右键单击应用程序-> 添加应用程序-> 浏览到我们服务的物理位置以获取物理路径字段-> 单击“好的”现在我们将浏览别名为http://localhost/WebServiceDemo/的应用程序,以测试该应用程序是否已正确托管。在这里我们会得到一个错误“HTTP Error 403.14-Forbidden”。出现此错误是因为没有为此应用程序设置任何默认文档。现在我们将添加一个页面作为默认文件“MyService.asmx”。现在我们可以通过在浏览器 localhost/WebServiceDemo/MyService.asmx 中添加这个URL来浏览我们的应用程序。

从客户端脚本使用 Web 服务

我们可以在任何类型的应用程序中使用 Web 服务。在这里我们将创建一个应用程序 .Net web 应用程序。为此,我们将遵循以下步骤:

第一步:右击Solution explorer->Add->New Project,如下图所示:

如何创建网络服务

第二步:点击新建项目后,一个新窗口将打开,如下图所示:

如何创建网络服务

第 3 步。在此之后,为了与 Web 服务通信,我们必须创建一个代理类。要创建代理类,我们必须遵循以下步骤:

代理类

要创建代理类,我们必须右键单击 References->Select Add Service Reference,如下图所示:

如何创建网络服务

单击“添加服务引用”后,将出现一个新窗口,如下图所示:

如何创建网络服务

上面窗口的解释:

地址:在这里,我们将粘贴我们创建的 Web 服务的 URL,然后单击 Go。

单击“开始”按钮后,将搜索提供的地址。

命名空间:在命名空间中,我们将提供服务的名称,然后单击“确定”按钮。这将在项目中添加对 Web 服务的引用。

现在我们将在我们的应用程序中添加 Web 表单。为此,我们将遵循以下步骤:

1. 在解决方案资源管理器中右击项目->选择添加->选择网络表单,如下图所示:

如何创建网络服务

单击 Web 表单后,这将打开一个新窗口,我们必须在其中提供 Web 表单的名称,如下面的屏幕截图所示:

如何创建网络服务

在上面的屏幕截图中,我们给出了 Web 表单的名称,然后单击“确定”。

在 Web 窗体中,我们将创建一个表以在 Web 服务的帮助下使用预定义的方法。

在 WebForm1.aspx 中,我们完成了以下编码,如下面的代码所示:

例子 (Example)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="CalculatorWebApplication.WebForm1" %>  
  
<!DOCTYPE html>  
  
<html xmlns="http://www.w3.org/1999/xhtml";>  
<head runat="server">  
    <title></title>  
</head>  
<body>  
    <form id="form1" runat="server">  
        <table style="font-family:Arial">  
            <tr>  
                <td>  
                    <b>First Number</b>  
                </td>  
                <td>  
                    <asp:TextBox ID="txtFirstNumber" runat="server"></asp:TextBox>  
                </td>  
            </tr>  
            <tr>  
                <td>  
                    <b>Second Number</b>  
                </td>  
                <td>  
                    <asp:TextBox ID="txtSecondNumber" runat="server"></asp:TextBox>  
                </td>  
            </tr>  
             <tr>  
                <td>  
                    <b>Result</b>  
                </td>  
                <td>  
                    <asp:Label ID="lblResult" runat="server" Text="Label"></asp:Label>  
                </td>  
            </tr>  
            <tr>  
                <td>  
                    <asp:Button ID="btnadd" runat="server" Text="Add" OnClick="btnadd_Click" />  
                    </td>  
                      
  
            </tr>  
        </table>  
    </form>  
</body>  
</html>

在上面的代码中,创建一个表,我们在其中使用两个文本框,textbox1,用于输入 firstnumber 和 textbox2,用于输入 SecondNumber。创建一个按钮,我们将借助该按钮添加两个数字。

上述代码的设计视图如下图所示:

如何创建网络服务

这里我们使用了两个文本框来输入 firstnumber 和 secondnumber。添加按钮用于添加两个文本框的值。

双击添加按钮后,我们将切换到编码页面。该页面是 WebForm.aspx.cs。

要使用 Web 服务的方法,我们将在单击按钮时执行以下代码。

WebForm.aspx.cs

例子 (Example)

using System;  
using System.Collections.Generic;  
using System. Linq;  
using System. Web;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
  
namespace CalculatorWebApplication  
{  
    public partial class WebForm1 : System.Web.UI.Page  
    {  
        protected void Page_Load(object sender, EventArgs e)  
        {  
  
        }  
  
        protected void btnadd_Click(object sender, EventArgs e)  
        {  
            CalculatorService.CalculatorWebServiceSoapClient client = new CalculatorService.CalculatorWebServiceSoapClient();  
           int result= client.Add(Convert.ToInt32(txtFirstNumber.Text),  
                Convert.ToInt32(txtSecondNumber.Text));  
            lblResult.Text = result.ToString();  
        }  
    }  
}

现在我们将按 F5 启动 Web 服务。输出将如下面的屏幕截图所示:

输出

如何创建网络服务

包起来

在这里,我们在此应用程序中获得了 Web 服务的好处。我们没有为两个数字相加编写任何逻辑。在我们的计算器 Web 应用程序中,我们只是使用了 Web 服务的方法。我们没有使用任何逻辑来添加。上面的屏幕截图显示了两个数字相加的输出,即 23。


上一主题 没有了 下一主题 没有了
  • 使用社交账号登录,本站支持
全部评论(0)