没什么限制。在我们开发WebService的时候,Service的类里可能会有很多的方法,或者保留,或者有其他用途,如果这些方法都是public的话~~~前端就可能都看到,从安全角度而言,是不好的,因此有了WebMethod,只有被这个特性标记的方法,.net才会输出让前端可见(可以使用)。
此外,在ASPX页面里,其对应的aspx.cs文件里的public方法也是一样。原本这里的方法无论是否public都不能被外面(前端)直接调用,必须走aspx页面访问流程,由页面生存周期的各类事件去触发,而如果通过webmethod标记了的方法,则可以直接使用,使用方式是:page.aspx/method,这样是否简单多了?可以直达黄龙呢!(嘿嘿)。不过,我忘记了这个方法是否必须静态的了(貌似需要静态方法)。
必须静态方法才行,一直在用,就是不知道这样与完全的WebService的相比有什么优缺点的,谢了。
@youyi000: 没有什么优缺点的,在于习惯与喜欢。
如果是WebService,那么意味着你要做很多,比如专门写一个Service,调用的时候要么引用WSDL生成解析,要么自己构建SOAP,但用WebService显得专业以及便于以服务的方式公开。
而用页面静态函数则简单点,不需要考虑太多的东西,直接用。
其实,现在的MVC里的WebAPI,也可以说是WebService与站点应用整合的一个方案。
1、静态的public方法
2、WebMethod方法只接受POST类型请求
使用方式我知道,就是想了解一下这样的用法有什么优缺点,感觉这样的方式与MVC里面的方式挺像的。
@youyi000: 觉得比一般文件使用起来方便,多个方法可以写在同一个页面中,便于维护;目前只有这么点感触,观注一下其他朋友的分享