发布网友 发布时间:2022-04-23 01:21
共1个回答
热心网友 时间:2022-04-26 20:12
其实对于C#调用json-rpc并不点便宜,一般情况下如果是C#调用,可以考虑使用wcf等rpc技术。
对于json/xml等rpc,在C#调用时,应该遵从以下两个原则:
远程http协议流调用(使用tcpclient/webclient等类库将内容调用到本地)。
对本地流(二进制,文本——json/xml,文本——jsonp等)进行反序列化,得到相应的调用。
严格来说,这种情况其实不能称之rpc的,rpc是远程调用,指的调用远程方法并返回(不返回)相应的应答,而json/jsonp则是将执行结果以流的方式返回,而这个恰好可以序列化成本地对象,严格来说,json/jsonp/xml实际上是让浏览器调用的,浏览器本身是javascript的宿主,可以很轻易地反序列json或直接执行jsonp方法。
也就是说,浏览器通信使用json/jsonp的这种方案,目的是跨终端。而C#只能出现在页面后端,如果让后端去调用业务层逻辑的话,不如直接使用wcf等rpc。使用json/jsonp则是需要自定义序列化的,对于将来的维护等存在一定的问题。
如果把网页也看作rpc的话,json/jsonp可以算做rpc的,事实上狭义的rpc就是远程调用,是在业务层上远程集中封装。还有是一定的区别的。