摘要: 预处理指令主要用于影响程序的编译过程,提供编译信息或禁止部分代码段的编译,C#其实并没有C++一样的独立预处理器,预处理指令也是由编译器处理的1.#define,#undef 用于声明或删除符号定义,#define和#undef必须放在文件的第一行,且定义的符号(变量)只在当前文件范围内有效2.#if,#elif,#else ,#endif 用于在根据定义的符号/变量 来判断标识的代码块是否需要被编译,如果不需要,则不会对其进行编译,生成的可执行文件也会相应缩小#define Debugusing System;using System.Collections.Generic;using Sy 阅读全文
posted @ 2011-10-21 17:19 wangking1029 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 1.Switch(1)C#中case值不能使用变量(可以使用常量)(2)激活了其中一个Case语句则其他Case不能被激活,除非使用goto case语句(3)如果Case语句处理为空 即:【case “asd” :case “eee”:】 则可以实现多条件并用处理(4)case顺序无关紧要,所以所有case的值不能相同(包括值相同的常量)(5)C#中case可以进行字符串的判断2.枚举类(enum)(0)枚举类定义方法public enum TimeOfDay{ Moring = 0, Afternoon = 1, Evening = 2,}public class tes... 阅读全文
posted @ 2011-10-21 14:15 wangking1029 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 将WCF寄宿在IIS上是WCF的一种寄宿方式,但是一直找不到在IIS上寄宿TCP的方法,由于先前使用的是IIS6,所以一直报net.tcp不能解析..上网查阅了很多资料发现似乎只有IIS7支持对TCP等其他通信方式的寄宿(WAS),下载了虚拟机装上Win7准备试一把(本来准备装Win2008可是公司只有DC版R2的镜像文件,装上之后怎么都激活不了.....)0.安装IIS,FrameWork,WAS这些都是Windows组件里添加的,就不多说了1.配置IIS支持对WCF的寄宿这里是第一个纠结点,如果配置不好,别说TCP,连HTTP都寄宿不上。一般情况下,如果机器上已经安装IIS,在安装.Net 阅读全文
posted @ 2011-10-13 15:22 wangking1029 阅读(742) 评论(0) 推荐(1) 编辑
摘要: 托管堆内存管理策略与垃圾回收托管堆将对象依次保存,垃圾回收之后进行一次内存整理,所以如果GC的频繁发生会降低系统性能,因为GC对内存的清理造成对象在内存中的移动,在整个GC结束之前,CLR上的应用程序不可能继续运行,.net 使用世代垃圾回收器,CLR上的内存管理策略与OS的内存管理策略类似(CLR本身也就是虚拟机)。1.CLR内存管理CLR的托管堆的将对象依次保存在内存上,如果有新的内存请求,会在托管堆中遍历,找到第一个大小符合要求的连续内存空间,将对象保存在该空间。如图,假设CLR从内存为4001的存储块(不知道CLR是不是使用分页系统,所以只能用存储块来描述)开始寻址,此时需要分配一个大 阅读全文
posted @ 2011-10-07 11:44 wangking1029 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 在使用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 阅读(213) 评论(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 阅读(1915) 评论(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 阅读(3163) 评论(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) 编辑