在上次博客帖子中,我们讨论了客户端对web服务的使用。在这篇文章中我们将复习一下如何使用web服务的会话状态。
这是上一篇文章的延续。因此请迅速的回顾之前的文章以便有一个清晰的概念。
在web服务中要用到ASP.NET中的会话对象,有2件事情需要做。
1.WebService 类需要继承System.Web.Services.WebService类
2.WebMethod中的Enablesession属性值应该设置为true
来看我们CalculatorWebService类,我们可以看到,它已经继承System.Web.Services.WebService类。但是,我们需要EnableSession属性值设置为true。
本文中,我们将试试在使用一个如下所示的GridView中的会话对象来展示最近的计算结果.
为了达成这个目的,首先要想下面这样,修改CalculatorWebService类的Add方法.
12345678910111213141516171819202122 | [WebMethod(EnableSession = true )]
public int Add( int firstNumber, int secondNumber)
{
List< string > calculations;
if (Session[ "CALCULATIONS" ] == null )
{
calculations = new List< string >();
}
else
{
calculations = (List< string >)Session[ "CALCULATIONS" ];
}
string strTransaction = firstNumber.ToString() + " + "
+ secondNumber.ToString()
+ " = " + (firstNumber + secondNumber).ToString();
calculations.Add(strTransaction);
Session[ "CALCULATIONS" ] = calculations;
return firstNumber + secondNumber;
} |
然后再引入另外一个公共方法来返回所有的计算结果. 要使用WebMethod特性来修饰这个方法,并且将EnableSession属性设置为true.
1234567891011121314 | [WebMethod(EnableSession = true )]
public List< string > GetCalculations()
{
if (Session[ "CALCULATIONS" ] == null )
{
List< string > calculations = new List< string >();
calculations.Add( "You have not performed any calculations" );
return calculations;
}
else
{
return (List< string >)Session[ "CALCULATIONS" ];
}
} |
现在就可以构建我们的解决方案了,并能在浏览器中查看到我们的Web服务.
Web服务会列出两个方法——Add和GetCalculations.
点击Add方法。让我们输入两个数字,比如20和30,然后点击Invoke按钮,我们会得到50这个结果.
让我们来做另外一次计算,比如30和70。然后点击Invoke按钮,我们将会得到结果为100.
现在让我们回头来测试一下我们的GetCalculation方法。然后点击Invoke方法,现在回展示出我们之前所做的所有计算。它们会以一个字符串数组的形式返回.
如此我们的Web服务就这样按照预期运作了。现在让我们来试试在我们的Web应用程序中使用这些方法。为此,在Webform1.aspx 中, 让我们往其中拽一个GridView控件进去.
123456 | < tr >
< td >
< asp:GridView ID = "gvCalculations" runat = "server" >
</ asp:GridView >
学习交流
热门图片
猜你喜欢的新闻
新闻热点 2019-10-23 09:17:05
2019-10-21 09:20:02
2019-10-21 09:00:12
2019-09-26 08:57:12
2019-09-25 08:46:36
2019-09-25 08:15:43
疑难解答 |