zoukankan      html  css  js  c++  java
  • [c#]Webservice中如何实现方法重载(overload)以及如何传送不能序列化的对象作参数

    1。Webservice中的方法重载问题
    (1)在要重载的WebMethod上打个MessageName标签
    比如:
    [WebMethod(MessageName = "HelloWorld1")]
    public string HelloWorld(){
        return "HelloWorld";
    }

    [WebMethod(MessageName = "HelloWorld2")]
    public string HelloWorld(string msg){
        return msg + "HelloWorld";
    }
    (2)此外还要在class上修改WebServiceBinding特性,如下:
    [WebServiceBinding(ConformsTo = WsiProfiles.None)]
        public class UploadService : System.Web.Services.WebService
        {
            ...
        }

    2.无法序列化的对象如何作为参数传递
    比如:
    void TestMethod(MyObject p){
        ...
    }
    这里MyObject是一个自定义类,并且无法序列化,如果你的WebService里有这样的方法,那么在浏览asmx时,会提示“MyObject无法序列化,因为没有无参数的构架函数”之类,解决办法有二个:
    (a)修改MyObject,使其序列化,但如果MyObject已经封装成程序集(dll)无法修改的话,请看第二种方法
    (b)将void TestMethod(MyObject p)修改为

    void TestMethod(Object t){
        MyObject p = t as MyObject
        ...
    }
    即把Object做为参数传入,然后在方法内部再Cast为MyObject,虽然这要增加了额外的拆箱,封箱操作,但总比不能用要好

    另外,讲几个小技巧,如果要给方法增加描述说明,让引用webService的人更容易看懂,可以在[WebMethod(MessageName = "HelloWorld1")]后再增加一个Desciption="xxx",即
    [WebMethod(MessageName = "HelloWorld1", Description = "描述内容,支持Html语法哦")]

    同样整个WebService也可以增加描述,在class上增加Desciption属性,即
        [WebService(Namespace = "http://www.yourdomain.com/",Description="服务说明,支持html语法")]
        [WebServiceBinding(ConformsTo = WsiProfiles.None)]
        public class UploadService : System.Web.Services.WebService
        {
            ...
        }

    作者:菩提树下的杨过
    出处:http://yjmyzz.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    949. Largest Time for Given Digits
    450. Delete Node in a BST
    983. Minimum Cost For Tickets
    16. 3Sum Closest java solutions
    73. Set Matrix Zeroes java solutions
    347. Top K Frequent Elements java solutions
    215. Kth Largest Element in an Array java solutions
    75. Sort Colors java solutions
    38. Count and Say java solutions
    371. Sum of Two Integers java solutions
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/1158785.html
Copyright © 2011-2022 走看看