代码改变世界

关于MEF

2014-03-11 10:26 by JerremyZhang, 357 阅读, 0 推荐, 收藏, 编辑
摘要:MEF(Managed Extensibility Framework)是.NET Framework 4.0一个重要的库,Visual Studio 2010 Code Editor的扩展支持也是基于MEF构建的。MEF组合过程1.创建组件目录(如AssemblyCatalog)2.创建组合容器CompositionContainer3.创建一个组件4.从组件容器获取其它组件功能定义,执行匹配组合var catalog = new AssemblyCatalog(Assembly.GetExecutingAssembly()); //创建一个程序集目录,用于从一个程序集获取所有的组件定义 . 阅读全文

javascript拾遗

2014-03-10 16:20 by JerremyZhang, 188 阅读, 0 推荐, 收藏, 编辑
摘要:javascript中,只有null和undefined不能拥有方法,其他任何类型都可以在其上定义方法;字符串既然不是对象,怎么会有属性呢?只有引用了字符串的属性,那么javascript就会将字符串通过调用new String()的方式转换为对象,这个对象继承了字符串的方法,并被用来处理属性的引用。一旦属性引用结束,这个新创建的对象就会销毁(其实在实现上并不一定创建或者销毁这个临时对象,然而整个过程看起来是这样)。同字符串一样,数字和布尔值也具有各自的方法:通过Number()和boolean()构造函数创建一个临时对象,这些方法的调用均是来自于这个临时对象,null和undefined没有 阅读全文

记录下关于SQL Server的东西

2014-03-10 09:58 by JerremyZhang, 383 阅读, 0 推荐, 收藏, 编辑
摘要:CTE之所以与其他表表达式不同,是因为它支持递归查询:定义一个递归CTE,至少需要两个查询(或者更多),第一个查询称为定位点成员(anchormember),第二个查询称为递归成员(recursivemember),基本格式如下:定位点成员只是返回有效关系结果表的查询,与用于非递归查询类似,定位点成员查询只被执行一次。递归成员是一个引用了CTE名称的查询,对CTE名称的引用表示查询在一个执行序列中逻辑上的“前一个结果集”,第一次调用递归成员时,它表示的就是定位点成员的查询结果,之后调用递归时,引用CTE则代表前一次调用所返回的结果集。递归成员没有显示的递归终止检查,递归成员会一直被重复调用,直 阅读全文

学习ExpressionTree(做装配脑袋出的练习题)

2014-03-04 14:51 by JerremyZhang, 316 阅读, 0 推荐, 收藏, 编辑
摘要:1 // 第一题:画出下列表达式的表达式树。一开始,您很可能不知道某些操作其实也是表达式(比如取数组的运算符a[2]),不过没有关系,后面的习题将帮你验证这一点。 2 3 //-a 4 ParameterExpression e1 = Expression.Variable(typeof(int), "a"); 5 UnaryExpression u = Expression.Negate(e1);//求反的表达式 6 Console.WriteLine(u); 7 8... 阅读全文

MongoDB学习(翻译7)

2013-09-17 18:36 by JerremyZhang, 2049 阅读, 3 推荐, 收藏, 编辑
摘要:接上篇忽略某字段或属性手动构造类映射时您可以简单地通过不将字段或属性添加到类映射。当使用自动映射你需要指定应忽略该字段或属性的方法。可以使用属性编写如下编写:public class MyClass { [BsonIgnore] public string SomeProperty { get; set; }}或使用初始化代码而不属性:BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.UnmapProperty(c => c.SomeProperty);});在这种情况下的自动映射将有最初属性自动添加到类映射但... 阅读全文

MongoDB学习(翻译6)

2013-09-16 16:31 by JerremyZhang, 1371 阅读, 2 推荐, 收藏, 编辑
摘要:接上篇。。。。字段或属性层次的序列化选项有许多种让你控制序列化的方式,上一节通过约定方法来控制序列化,你也可以通过代码配置或者成员映射或者使用特性来控制你的序列化,下面说道的序列化的各个方面,我们都会展示两种方式。Opt-In大多数类会使他们的属性自动映射,有一些情况下,不会出现这种情形,例如,如果你的属性是只读的,那么它便不会加入到自动映射的队列中,为了包含该只读属性,你可以使用BsonElementAttributepublic class MyClass { private readonly string _someProperty; [BsonElement] pu... 阅读全文

MongoDB学习(翻译5)

2013-09-14 16:45 by JerremyZhang, 1776 阅读, 3 推荐, 收藏, 编辑
摘要:C#驱动序列化文档对象介绍本文档基于C#官方驱动1.8版本。本节C#驱动教程谈论C#类到BSON对象的序列化和反序列化。序列化是映射一个对象到可保存到MongoDB库中BSON对象的过程,反序列化由BSON文档重建对象的逆过程。因此,序列化过程通常被称为“对象映射”序列化使用BSON库处理。BSON库拥有一个可扩展的序列化结构,所以你可以控制你的序列化方式。BSON库提供的默认的序列化其可以满足你大部分的需求,如果你需要特殊处理,你可以对其进行扩展。默认序列化器通过“类映射”来处理。类映射是定义类和BSON文档对象间映射的一种结构,它包含一系列参与序列化的字段或属性并且为每一个定义了所需的序列 阅读全文

MongoDB学习(翻译4)

2013-09-13 09:58 by JerremyZhang, 1416 阅读, 4 推荐, 收藏, 编辑
摘要:接上篇。。。。。EndsWith此方法用于测试文档对象的字符串类型的字段或者属性是否以某一个特定的字串结束varquery=fromcincollection.AsQueryable()wherec.S.EndsWith("abc")selectc;//orvarquery=collection.AsQueryable().Where(c=>c.S.EndsWith("abc"));可转化为下面mongodb查询语句(使用了正则表达式)::{S:/abc$/}enum比较 (==,!=,,>=)枚举字段或者属性可以和同一种类型的枚举常量比较, 阅读全文

MongoDB学习之--安全和认证

2013-09-12 17:26 by JerremyZhang, 1792 阅读, 4 推荐, 收藏, 编辑
摘要:本文主要介绍两部分内容,Mongodb的安全检查配置以及安全认证操作: 虽然确保系统安全是系统管理员的重要工作,但是作为程序员了解其机制也是大有好处的,毕竟不是每个公司都很规范,都有严格的分工制度,说不定作为程序员的我们常常身兼数职; MongoDB支持对单个连接的认证,即便这个认证的权限模式很丑陋 阅读全文

MongoDB学习(翻译3)

2013-09-12 08:31 by JerremyZhang, 1524 阅读, 3 推荐, 收藏, 编辑
摘要:支持的where字句(比较多,今天先写一部分)本节介绍支持的where字句正如前面提到的,不是所有的C#表达式都支持where子句。您可以以此文为指导,或者你可以尝试表达,看看它是否工作(如果不支持,抛出运行时异常,)。Where字句通常使用where查询操作运算符来介绍,但是在某些情况下,我们必须通过&&合并使用它。注意:在1.4版本中还有些限制,但是之后的版本已经解除了,所以在此不再翻译。&&(与操作)子表达式可以通过&&合并来查询满足所有子表达式的文档var query = from c in collection.AsQueryable( 阅读全文