摘要: WCF是基于契约来开放服务的,与Remoting基于远程对象(MarshalByRefObject)不一样,因此WCF中的基于TCP的绑定与Remoting还是有很大的区别,WCF要统一各种已有的技术,因此就牺牲了Remoting的不少灵活性和强大性,在Remoting中只要对象继承了MarshalByRefObject就具备了远程特性,而WCF必须要标记为契约(服务契约,操作契约,数据契约,消息契约),且很重要的一点WCF中的操作契约返回自定义对象时极为不变,且无法返回接口,虽然在服务中返回接口比较少见,但是少见并不是不需要,对于复杂服务的话,采用WCF开发极为不变且如返回接口之类的无法实现的东西。 阅读全文

posted @ 2010-12-16 21:45 风中过客 阅读(1162) 评论(0) 推荐(0) 编辑

摘要: 经过几天的努力终于差不多把Rss源订阅和阅览基本上整合到我的浏览器中了,中间还颇有波折,一开始是TreeNode无法序列化扩展的属性,能够序列化的属性只有很少的几个,第二个问题就是rss源编码的问题,每个网站提供的rss源的编码各不相同,导致解析很是费劲,不过总算还是解决了,就是TreeNode节点序列化的问题,虽然解决了但是不是很完美,采取了一点技巧,把要序列化的值编码到Text属性中,反序列化时就对其进行解码,本来应该可以通过自定义序列化实现的,但是没成功,只好采取下策了.虽然不算很完美总算还是解决了,整合的过程中利用了很多已有的资源,并没有独立于以前的东西实现,rss源解析器可以独立应用,整合类依赖浏览器提供的功能,比如说显示在tab控件中的tabpage就是继承了已有的一个page类,通过扩展来兼容于浏览器的.序列化和填充器(填充ListView)都采取了以前编写的dll库. 阅读全文

posted @ 2007-01-07 18:38 风中过客 阅读(1889) 评论(3) 推荐(0) 编辑

2010年12月23日

摘要: 在使用服务时虽然一般是客户端向服务端请求服务,但有些时候也需要服务端向客户端进行通知(Notify),在CS的程序中尤为常见,在出现WCF之前,Remoting中使用回调是大费周章的一件事情,需要建立单独的侦听类,并且要处于独立的程序集中才行,在WCF中大大简化了回调过程,但是也有一些需要特别注意的地方,如果不注意回调也不是那么容易的,先看一个简单的回调代码: 一:配置属性声明: 服务接口: [ServiceContract(CallbackContract = typeof(IChartCallBack))] public interface IChart { [OperationContract] void Join(string name); [OperationContract] 阅读全文

posted @ 2010-12-23 19:35 风中过客 阅读(1367) 评论(0) 推荐(1) 编辑