09 2011 档案

摘要:在使用WCF进行通信是主要是通过配置Binding来改变其通信策略的,不进行Binding配置,也可以使用WCF内置的Binding封装 来实现一个类似于Socket的基本通信,便于理解WCF的实现策略: Listener:Uri address = new Uri("http://127.0.0.1:8888/baseService");BasicHttpBinding binding = new BasicHttpBinding();//使用WCF集成的HttpBindingIChannelListener<IReplyChannel> channelLis 阅读全文
posted @ 2011-09-29 17:40 wangking1029 阅读(227) 评论(0) 推荐(0) 编辑
摘要:Nhibernate一级缓存对当前Session 实例有效一级缓存管理:ISession.Evict(object):从缓存中删除指定实例。ISession.Clear():清空缓存。ISession.Contains(object):检查缓存中是否包含指定实例。使用Get和Load的缓存查询策略//Load和Get区别Get = new LoadType("Get") .SetAllowNulls(true) .SetAllowProxyCreation(false) .SetCheckDeleted(true) .SetNakedEntityReturned(fal.. 阅读全文
posted @ 2011-09-29 09:35 wangking1029 阅读(214) 评论(0) 推荐(0) 编辑
摘要:1.和EF不同,NH的延迟加载不仅可以使用于关系而且可以使用于普通字段,用于在加载大数据时改进系统性能 2.默认情况下,hibernate对于字段(属性)的加载不使用延迟,对于关系的加载使用延迟 3.实现延迟加载 3.1 在xml中配置 <property name="PartName" lazy="true" column="PartName"></property>使用这种... 阅读全文
posted @ 2011-09-28 16:30 wangking1029 阅读(287) 评论(0) 推荐(0) 编辑
摘要:根据以前使用hibernate的经验搭建nhibernate1.配置sessionfactory(hibernate.cfg.xml)指定数据库连接串,方言,连接池和Mapping文件位置<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" ><!--此处版本号要和mapping文件中照应--> <session-factory name="NHibernate.Test"> <property name="connectio 阅读全文
posted @ 2011-09-28 12:20 wangking1029 阅读(1916) 评论(1) 推荐(0) 编辑
摘要:使用网上的例子使用WCF头信息可以用于在调用Service的同时传递Header元数据客户端: ChannelFactory<IOrderProcessor> channelFactory = new ChannelFactory<IOrderProcessor>("defaultEndpoint"); IOrderProcessor orderProcessor = channelFactory.CreateChannel(); //使用通道建立Scope using(OperationContextScopescope=newOperationC 阅读全文
posted @ 2011-09-27 14:33 wangking1029 阅读(3165) 评论(1) 推荐(0) 编辑
摘要:使用消息队列(Message Queue)可以实现服务端与客户端的异步通信,客户端/服务端 可以在与对方通信断开的情况下将信息保存到MSMQ中实现如下效果:在不开启服务端的情况下,客户端将信息传入消息队列,当服务器端打开后即可从该消息队列中读取数据,MSMQ支持事务操作准备条件:需要安装消息队列(控制面板-添加Windows组建-消息队列)Contract: [ServiceContract] public interface IPlusSerOp { [OperationContract(IsOneWay=true)]//只能使用OneWay,因为MSMQ通... 阅读全文
posted @ 2011-09-27 10:06 wangking1029 阅读(385) 评论(0) 推荐(0) 编辑
摘要:WCF中客户端捕获服务端的异常共有三种方式1.服务端不做任何处理,客户端直接捕获 try { service.HelloWCF(mess); } catch (FaultException<FaultMessage> ex) { Console.WriteLine(ex.Detail.Message); }此时客户端捕获的异常显示为WCF的默认ServiceError,没有任何指示信息2.服务端使用includeExcepti... 阅读全文
posted @ 2011-09-26 10:09 wangking1029 阅读(410) 评论(1) 推荐(0) 编辑
摘要:1.如果POCO中使用了virtual如果使用Find精确查找,entity的属性,延迟加载属性(关联属性)都能够查询出,查询DB的顺序是:使用Find时立即发出对非延迟的属性的查询,在使用到延迟属性后,发出对延迟属性的查询1.1如果没有添加virtual标识:-----------如果该属性(对象)没有加载到缓存中,则返回null1.2如果virtual标识被标识在普通属性(非关联属性)上时,没有实际效果2.如果POCO中使用了virtual如果使用DBContext.Set<T>这种方式由于使用了virtual,如果关联属性没有被加载到缓存中,则会抛出异常,如果关联属性已经加载 阅读全文
posted @ 2011-09-23 16:34 wangking1029 阅读(1281) 评论(1) 推荐(1) 编辑
摘要:1.设定服务契约和回调契约 服务契约中使用[CallbackContract=typeof(XXXCallBackContractName)]声明回调契约 OperationContract上可以使用[IsOnWay=true]来声明服务只提供单向来避免死锁, 也可以在ServiceContract上使用(ConcurrencyMode = ConcurrencyMode.Multiple)【多线程访问】 或(ConcurrencyMode = ConcurrencyMode.Reentrant)【单线程允许回调】2.实现服务 服务端通过 #region 调用回调服务 ... 阅读全文
posted @ 2011-09-23 16:26 wangking1029 阅读(405) 评论(0) 推荐(0) 编辑