文章分类 - C#
C#
摘要:除了 DirectX 游戏开发,我们一般很少单独使用 UI Composition ,因此,与 XAML 互动并集成是必然结果。这样能够把两者的优势混合使用,让UI布局能够更灵活。
说到与 XAML 的集成,则我们必须先认识一位伙计,他非常重要,位于 Windows.UI.Xaml.Hosting 命名空间下,名叫 ElementCompositionPreview ,有了它,我们才可以在 XAML 元素与 Composition UI 元素之间游走。来看看它都公开了哪些成员。
阅读全文
摘要:最近博客园出现了一篇文章 "《微服务时代之2017年五军之战:Net PHP谁先死》" ,掀起了一波撕逼,作者只是从一个使用者的角度来指点江山,这个姿势是不对的。 就是专门针对模块化的微服务架构而设计,在微服务架构这方面 的`Spring Cloud .NET .NET`社区微服务的相关项目的汇集。
阅读全文
摘要:今天遇到个需求,动态读取实体类属性,然后把属性名的每个单词第一个大写字母用空格替换填充占位。接着把这个属性名列表放在网页的table-->thead里,而属性值则放在table-->tbody里。 简单来说,就是把实体数据列表动态转换为HTML里的table。 举例: TotalPrice,Tota
阅读全文
摘要:平时使用.NET MVC中不乏有类似的需求:某些razor视图,特别是系统后台的视图,不想让用户自行更改,需要通过某种方法把视图模板编译到项目的dll中去。但是VS并不提供razor的预编译,如果需要对razor预编译需要借助第三方工具:Razor Generator这里以VS2013为例1,依次选...
阅读全文
摘要:编译没有问题,但是运行时抛出异常:
“Microsoft.CSharp.RuntimeBinder.RuntimeBinderException”类型的未经处理的异常在 System.Core.dll 中发生
其他信息: “object”未包含“Id”的定义
Id属性是肯定存在的,那问题出在哪呢?
让我们用ILDasm查看程序,会发现其实声明的匿名类型是internal级别的。
阅读全文
摘要:在LinqToSql 为了删除一条部门记录。我们首选要删除该部门被引用的外键表记录这里是员工表,(以上代码只是为举例用,实际开发中是不会有此种业务的)当外键记录都删除成功后代码执行到第8行,这时才能能删除部门对象。否则报SqlException外键引用无法删除部门记录。我们唯一需要做的只是将 DataContext.SubmitChanges();这句放在所有Linq操作数据库语句之后这样就可以调用数据库事务机制了。比如当第5行代码执行时SystemUser还被Order表引用。当SubmitChanges执行时会自动调用transaction.Rollback()方法回滚SubmitChanges()之前的所有被影响的数据库记录,详情请阅Reflector。
阅读全文
摘要:EmitMapper是一个开源实体映射框架,地址:http://emitmapper.codeplex.com/。
EmitMapper映射效率比较高,接近硬编码。EmitMapper采用emit方式在运行时动态生成IL,而其他映射框架多是采用反射机制。此外EmitMapper最大限度地减少了拆箱装箱操作和映射过程中的额外的调用。
EmitMapper支持.net的所有平台:Framework 3.5、Microsoft Silverlight 3、Mono。
阅读全文
摘要:总结 :无论从性能和内存EmitMapper都接近于手工,NLiteMapper次之,AutoMapper最后。NLiteMapper,EmitMapper,AutoMapper都是通过Emit的方式进行Get和Set的,为什么性能差别如此之大,设想如果NLiteMapper不进行优化的话(NLiteMapper一直是通过Emit方式进行的),那么NLiteMapper肯定是高高垫背的(NLiteMapper比EmitMapper慢了15000倍)。。。。。。
这次测试结果不代表整体结果,仅仅代表Class->Class(包括级联) 的映射性能,欢迎大家对这几种OO映射器进行性能比较。
阅读全文
摘要:一直推崇纯C#的解决方案,无论是多年写的各种文件格式的读写(如office系列的xls/xlsx/doc/docx之类,pdf之类),还有邮件收发(包括我9年前写的OpenPOP),文件压缩解压,数据库(SharpHSQL、C#写的Sqlite 等),我都相当热衷于介绍这些项目。
阅读全文
摘要:在工作中经常会碰到类似的情况:我写了个功能模块,现在需要对它进行单元测试,功能模块在某个程序集中,而我的单元测试却在另外一个程序集中。功能模块是对外的,接口上当然是有很严整的访问权限,而单元测试也许需要调用到一些Internal的类或者方法。我们会怎么做呢?VS2003之前,我只好用type.InvokeMember来做。但是也存在很多的问题,当功能模块中的接口发生了变化(要知道,对内接口可是很容易就Rename的),那么在编译阶段,单元测试通过了,运行却出错了,我们辛辛苦苦发现啊呀原来是Internal接口变了,可真是郁闷。还带来的另一个问题是如果功能模块被加密了,type.InvokeMember就挂了
阅读全文
摘要:常有同学问起,XCode能够通过分表分库做海量数据CURD,统计报表怎么做?
其实这个超级简单!!!
很多人习惯了用group by,很慢,非常慢,并且不适用于XCode的分表分库。
那么,我们新生命团队是怎么做的呢?
阅读全文