webservice 参数传递
这两天碰到一个比较奇怪的事情,
一套完整的的smart client程序,client和server都是C#的,
在client和client生成的代理类都没有变更的情况下,修改server端的webservice的webmethod
的接口参数,对程序都没有影响,仍然能够正常运行。
client
clsTestService.CreateDiretory( "Name" );
Reference.cs
BeginCreateDiretory(string strName, System.AsyncCallback callback, object asyncState)
webservice
public void CreateDiretory( string strName )
1.追加参数(以int测试)
webservice
public void CreateDiretory( string strName, int i )
此时正常执行,只是 i 的值被默认为0
2.减少参数
webservice
public void CreateDiretory( )
将webservice接口参数删掉,但是client不变,正常调用
3.改变参数名称
client
clsTestService.CreateDiretory( "Name" );
代理类不变
webservice
public void CreateDiretory( string strTestName )
此时,strTestName 所接收到的参数值不是 "Name"
而是 null
测试到此时,也有点头绪了,从测试结果看
webservice的参数传递是和参数名有关系的
是根据参数名来匹配和传值得。
因为也没有查相关资料,只是根据项目中的问题测试了一下
所以也不知道得出的结论是否正确,还有待从理论上说明。
转载请注明原文地址: https://ibbs.8miu.com/read-31814.html