随笔分类 - C#
摘要:综述 EmitMapper是一个开源实体映射框架,地址:http://emitmapper.codeplex.com/。 EmitMapper映射效率比较高,接近硬编码。EmitMapper采用emit方式在运行时动态生成IL,而其他映射框架多是采用反射机制。此外EmitMapper最大限度地减少了拆箱装箱操作和映射过程中的额外的调用。 EmitMapper支持.net的所有平台:Framework 3.5、Microsoft Silverlight 3、Mono。 EmitMapper的使用非常简单,不需要指定任何的映射策略。系统会采用默认的映射配置器DefaultMapConfig完成映射
阅读全文
摘要:Lucene.net Lucene.net是Lucene的.net移植版本,是一个开源的全文检索引擎开发包,它提供了完整的查询引擎和索引引擎,可供开发人员灵活的实现全文检索功能。Lucene.net是Apache软件基金会赞助的开源项目,最新版本是2.9.2.2。 使用Lucene.net进行全文索引的关键步骤是建立索引文件:先选择一个分析器(Analyzer)用来分词,再抽取待索引文档中的文本,选择适当的索引方式并添加到Lucene.net索引中。分词 分词是全文索引的基础。Lucene.net内置了几个分析器,但功能都比较简单,如果只是针对拉丁语系的分词完全够用,但针对中文的分词就不太理想
阅读全文
摘要:综述 序列化是将对象转换成流的过程,与之相反,反序列化将流转换为对象。利用序列化技术可以将对象序列化到磁盘、内存或者网络,在进程间、应用程序域间或者计算机之间传递对象。 .net框架提供了二进制格式和XML格式(纯XML或SOAP)的序列化,如果需要,也可以根据Iformatter接口实现自己需要的格式。利用Iformatter接口的Serialize方法和Deserialize方法可以将对象序列化/反序列化。 有三种方式可以声明序列化的方式。下面分别比较。 先准备一个待序列化的类User。 User类 1 public class User 2 { 3 public string Name
阅读全文
摘要:捕获组 语法:字符描述示例(pattern)匹配pattern并捕获结果,自动设置组号。(abc)+d匹配abcd或者abcabcd(?<name>pattern)或(?'name'pattern)匹配pattern并捕获结果,设置name为组名。\num对捕获组的反向引用。其中 num 是一个正整数。(\w)(\w)\2\1匹配abba\k< name >或\k' name '对命名捕获组的反向引用。其中 name 是捕获组名。(?<group>\w)abc\k<group>匹配xabcx 使用小括号指定一个子表
阅读全文
摘要:综述 XML加密和签名技术应用非常广泛。 ASP.NET 使用XML加密对配置信息进行加密;InfoPath使用XML签名对表单进行签名;Web服务使用XML加密和签名对SOAP消息进行加密和签名;等等。 W3C提供了相应的标准:http://www.w3.org/TR/xmldsig-core。 而X.509是一种非常通用的证书格式,符合ITU-T X.509国际标准。此标准已用于许多网络安全应用程序:IP 安全、SSL、电子商务协议(SET)等等。 利用X.509证书提供的公钥/私钥对可以很方便的对XML进行加密和签名。Geneva框架生成的GenericXmlSecurityToken类
阅读全文