日期:2014-05-18  浏览次数:20457 次

webservices问题,可以用out参数吗?如果可以怎么用!
webservices问题,可以用out参数吗?如果可以怎么用!
另 谁可以给个详细介绍的网址,google和baidu了还是没能找到!


------解决方案--------------------
测试过可以

Service.cs
C# code
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
    public Service () 
    {

        //如果使用设计的组件,请取消注释以下行 
        //InitializeComponent(); 
    }

    [WebMethod]
    public string HelloWorld(out int x)
    {
        x = 10;
        return "Hello World";
    }
}

------解决方案--------------------
确实可以
------解决方案--------------------
木有碰到
------解决方案--------------------
经过测试, 我的 [color=#99CC00HelloWorld[/color] 完全没有问题,

而 LZ 的 getPwdNick 无论如何改,的确会丢失第二个 out 参数,难道什么关键字冲突了?


[WebMethod]
public string HelloWorld2(out string x, out string y)
{
x = "Hello";
y = "World";
return "Hello World";
}

[WebMethod]
public string HelloWorld3(int n, out string x, out string y)
{
x = "Hello";
y = "World";
return "Hello World";
}

[WebMethod]
public void getPwdNick(int userid,out string pwd,out string nick)
{
pwd = "Hello";
nick = "World";
}
[WebMethod]
public void getPwdNick1(out string pwd, out string nick)
{
pwd = "Hello";
nick = "World";
}

[WebMethod]
public void getPwdNick2(ref int userid, out string pwd, out string nick)
{
pwd = "Hello";
nick = "World";
}
------解决方案--------------------
晓风也来了..测试了一下,还真的只能用一个输出参数..
------解决方案--------------------
明天有空用soap试一下
------解决方案--------------------
经测试没有任何问题
环境:win03+vs08

[WebMethod]
public void getPwdNick(int userid, out string pwd, out string nick)
{
pwd = "1";
nick = "2";
}


WebService1 s = new WebService1();
string pwd = "", aanick = "";
s.getPwdNick(1, out pwd, out aanick);
Response.Write(pwd + ";;" + aanick);
------解决方案--------------------
是不是你的webservices项目里有多个getPwdNick的WebMothod,webservice是不允许重载的,只能用getPwdNick2,getPwdNick3来区别
------解决方案--------------------
看看,有人测试有结果了
------解决方案--------------------
顶下吧
------解决方案--------------------
没有问题阿,你的两个out参数,第一个座位webmethod的返回值了

C# code
[WebMethod]
    public void getPwdNick(int userid,out string pwd,out string nick)
    {
    }

------解决方案--------------------
10的情况可能是vs08设计改过了,05以及之前版本都回吧void函数的第一个out参数作为改变为非out函数,这个你可以通过自己修改Reference.cs来改变,但是不提倡这么改。