随笔分类 - C#
摘要:HTTP 基本概念HTTP Request MethodsGET、POST 专业名称是 HTTP Request Methods。但 HTTP Request Methods 不只是 GET 和 POST,完整列表如下:GETPOSTPUTDELETEHEADOPTIONSTRACECONNECTP...
阅读全文
摘要:Linq 出现之前,我们通常使用下面的方式来判断集合是否非空,即集合包含元素:var array = new int[0];var b1 = array.Length > 0;var list = new List();var b2 = list.Count > 0;var collection = new Collection();var b3 = collection.Count > 0;使用 Length 或 Count 属性,上面的写法没有问题。但到了 Linq 时代,Enumerable.Count 扩展方法“统一了“ Length 和 Count 属性,于是就有了
阅读全文
摘要:配置文件在很多情况下都使用到, 配置文件分为两种 一种是应用程序的配置文件, 一种是web的配置文件.两种配置文件最大的区别是web的配置文件更新之后会实时更新, 应用程序的配置文件不会实时更新.更新应用程序的配置文件之后需刷新配置文件: 后台程序值得读取:string s=System.Configuration.ConfigurationSettings.AppSettings["name"];修改配置文件的值:/// /// 更新配置文件信息 /// /// 配置文件字段名称 /// 值 private void UpdateConfig(string name...
阅读全文
摘要:对于一个动态类型来说,你可以认为它包含任意成员,它们都能通过编译。但到了运行时,到底是否拥有这些成员,就真相大白了。如dynamic test = 7;Console.Write(test.Name);编译器无法在编译时知道test的真正类型,因此会使用其运行时的实际类型,而默认对于它的所有调用都是合法的,不会引发任何编译时错误。但它会抛出一个运行时异常。因为在运行时,test为一个int,它不具备Name属性。在编译时,编译器会根据会生成一些调用所需的上下文环境,如所有已知的静态类型等。但它无法知道在源代码中究竟引入了哪些命名空间。因此,你无法调用动态类型所代表的实际类型的扩展方法,也无法将
阅读全文
摘要:ASP.NET MVC 引入了 ModelBinder 技术,让我们可以在 Action 中以强类型参数的形式接收 Request 中的数据,极大的方便了我们的编程,提高了生产力。在查询 Action 中,我们可以将Expression Trees用作参数,通过自定义的 ModelBinder 动态自动构建查询表达式树,进一步发挥 MVC 的威力,简化编码工作。MVC 查询和存在的不足下面是一个查询 Employee 的 Action,在 MVC 项目中经常可以见到:public ActionResult Index(string firstName, string lastName, Dat
阅读全文
摘要:什么是NinjectNinject是一套.Net平台下的高效,超轻量级的依赖注入库。它可以帮助你实现应用程序的松耦合,高内聚,同时也能很灵活的把它们进行组合在一起。借助与Ninject的帮助,代码的使用,复用,测试和修改变得异常的简单。为什么使用Ninject既然在.Net平台下依赖注入已经很普遍,同时也已经有了好几个依赖注入库。为什么我们还要另外编写一套呢?首先,目前其他框架依赖于XML配置文件,通过配置文件去引导框架的组件的工作,这将带来以下不足:1.配置文件会很长,并且很冗余,因为你必须为每一个类型重复性的去写他得描述信息;2.一个简单的配置错误就会导致整个工程的瘫痪;第二点,其他框架是
阅读全文

浙公网安备 33010602011771号