随笔分类 -  C#

摘要:在实际更新Mongo对象时发现,原有的更新代码无法更新复杂的数据类型对象。恰好看到张占岭老师有对该方法做相关的改进,因此全抄了下来。 总的核心思想就是运用反射与递归,对对象属性一层一层挖掘下去,循环创建父类及之类的更新表达式。 相关代码如下: #region 递归获取字段更新表达式 private 阅读全文
posted @ 2016-06-13 19:24 のんきネコ 阅读(904) 评论(0) 推荐(0) 编辑
摘要:用过Mongo的人都知道,Mongo使用的是Bson类型,有string,int,date,bool等数据类型,具体就不详述了。 在使用Mongo 的C#官方驱动时会碰到一个问题,如何将Bson中的数据类型与C#中的数据类型匹配起来。 以下就是我在实际项目中碰到的需要匹配的数据类型。 id 比如说所 阅读全文
posted @ 2016-06-13 10:52 のんきネコ 阅读(2596) 评论(1) 推荐(0) 编辑
摘要:一、前言 最近项目中要用到MongoDB,因此实现做了不少的调研。发现网上很多现有关于MongoDB C#官方驱动的调用方法都是基于1.8版本的,已经不是用了最新的2.2版本。因此我在基于C#官方驱动2.2的基础上,对MongoDB的调用方法做了一些封装,以便于调用。 封装的内容包括: 1.封装了获 阅读全文
posted @ 2016-06-07 10:08 のんきネコ 阅读(1322) 评论(1) 推荐(0) 编辑
摘要:前言 因为项目需要,前端页面中需要不断向后台请求获取一个及一个以上的状态值。最初的方案是为每个状态值请求都建立一个定时器循环定时发起Ajax请求,结果显而 易见。在HTTP1.1协议中,同一客户端浏览器发起二个及以上请求时,服务器都会进行队列阻塞,即前一请求个执行完后才能执行下一个请求。而在当前前端 阅读全文
posted @ 2016-04-08 16:00 のんきネコ 阅读(8114) 评论(0) 推荐(1) 编辑
摘要:Windows下安装MongoDB,虽然网上有很多攻略,但是还是有很多坑,为了以后少犯错误,特此记录。 1.下载安装包 https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-3.2.1-signed.msi?_ga=1. 阅读全文
posted @ 2016-01-20 23:43 のんきネコ 阅读(285) 评论(0) 推荐(0) 编辑
摘要:为了保持开发效率,以及保持代码优雅,项目中引用了EntityFrame。但是又因为某些报表功能需要大量计算,所以又要求直接使用ADO.NET,调用存储过程进行计算。于是乎webconfig文件中就会出现两种数据库连接字符串。可以这样写又显得累赘,为什么同一个数据库,我要写两次连接字符串。于是想只保留... 阅读全文
posted @ 2014-12-18 11:18 のんきネコ 阅读(1990) 评论(0) 推荐(0) 编辑
摘要:一般写Singleton基本都是一下这个套路class Singleton { public static Singleton instance; private Singleton() { } public static Singleton Getinstance() { if(instat... 阅读全文
posted @ 2014-07-04 15:47 のんきネコ 阅读(674) 评论(0) 推荐(0) 编辑
摘要:在.NET Framework 4中,微软推出了Route机制。这种机制不仅在MVC中大量运用,在WebForm中也可以使用。和Contex.RewritePath()一样,Route功能也是写在Global.asax文件中。1.设置默认页面具体代码如下:如代码所示,该路由会将网站默认转向Simpl... 阅读全文
posted @ 2014-06-19 14:55 のんきネコ 阅读(3638) 评论(0) 推荐(1) 编辑
摘要:今天碰到一个让人脸绿的问题。原来的做法是,如果页面出错,则往Cookie里塞错误信息,然后迁移到错误页面,再把错误信息从Cookie里取出来,显示到页面上。这个做法原先都好好的,但是代码加密后,就出毛病了。往Cookie里塞的时候还是好好的“无权限!”。但是在错误页面取出来的时候就变成了乱码。纠结了... 阅读全文
posted @ 2014-06-13 10:40 のんきネコ 阅读(211) 评论(0) 推荐(0) 编辑
摘要:一直以来我都对virtual override 和 new 之间的区别感到疑惑不解。特别笔试的时候特别容易考到,真的很容易弄错啊,畜生!光看理论永远记不住,那不如写几行代码就懂了。首先看看virtual override实现什么效果:class A{ public virtual void say() { Console.WriteLine("A"); }}class B :A{ public override void say() { Console.WriteLine("B"); }}class Program{ s... 阅读全文
posted @ 2014-03-30 22:33 のんきネコ 阅读(273) 评论(0) 推荐(0) 编辑
摘要:在使用Entity Framework做查询的时候,如果只需要显示,而不用保存实体,那么可以用AsNoTracking()来获取数据。这样可以提高查询的性能。代码如下:var context = new Entities(connectStr);var contentlist = context.Set().AsQueryable().AsNoTracking(); 但是如果取到数据后,要对数据做修改并保存,则无法反映到数据库里。如:var context = new Entities(connectStr);var contentlist = context.Set().AsQueryab. 阅读全文
posted @ 2014-03-07 18:04 のんきネコ 阅读(3462) 评论(0) 推荐(0) 编辑
摘要:CSV文件是用逗号作为分隔符的,所以如果是简单的CSV文件,用split(',')就可以了。但是Excel编辑CSV文件,且内容中有逗号,得到的csv文件如下:"aaa,aaa",bbb,ccc这时候split(',')就行不通了。为了对应这种情况,写了一段简单的代码处理一下。var result ... 阅读全文
posted @ 2014-02-20 15:39 のんきネコ 阅读(638) 评论(3) 推荐(0) 编辑
摘要:我从服务器上取得一串Json数据,然后想表示到画面上。不过服务器上取下的Json数据肯定是经过压缩的,空格和换行都没有。如果直接看,可读性非常差。由于我这个软件是内部管理用的,使用者既能直接看懂Json数据,但是又要保证数据的可读性,所以得将Json数据做一个排版。具体如下:public static string PraseToJson(string str){ var tabIndex = 0; for (int i = 0; i < str.Length; i++) { var cr = str[i]; if (cr == '{' || cr... 阅读全文
posted @ 2013-10-16 19:12 のんきネコ 阅读(1334) 评论(3) 推荐(1) 编辑
摘要:本来是发布在客户的Wiki上的,所以用日语写。-----------------------------------------------------------------------------Response Headerの中に、サーバーのバージョンがデフォルトで表示されていますが、バージョン情報にて既知の脆弱性を突いた攻撃を受ける可能性が高くて、不安全です。ASP.NETの場合、同じくResponse Headerにデフォルトで入っているASP.NETバージョンを隠すには、WebRoleのWeb.configファイルで配置していいですが、サーバーバージョンがそう簡単にWeb.conf 阅读全文
posted @ 2013-09-12 17:47 のんきネコ 阅读(1870) 评论(0) 推荐(0) 编辑
摘要:本来是发布在客户的Wiki上,所以就用日语写。------------------------------------------------------------------------Web Pageの場合、Web.configで を配置すれば、404或いは503エラーの場合、カスタマイズのエラーページに遷移されます。WebApiの場合はどうする?特にWeb PageとWebApiのRouteが分かれている場合、Apiへのアクセスが間違っても、カスタマイズのエラーページに遷移しません。技術不足で、Web.configでどう配置すれば分からないですが、Controllerと... 阅读全文
posted @ 2013-09-12 17:45 のんきネコ 阅读(908) 评论(0) 推荐(0) 编辑
摘要:扩展方法注意事项扩展方法所在的类必须是静态类。扩展方法必须是静态方法。扩展方法需要接受一个自身的参数:this。下面是具体的一个例子:class Program { static void Main(string[] args) { string str = "string"; int i = str.str2int();//调用 Console.WriteLine(i); Console.ReadLine(); } } //扩展方法所在的类必须是... 阅读全文
posted @ 2012-12-19 18:00 のんきネコ 阅读(219) 评论(0) 推荐(0) 编辑
摘要:这篇文章是我在项目中积累注意到的各种小知识的整理。因为知识点太小,不好单独作为一篇文章,所以就统合放在一起。! ①根据format自动赋参。 得到的值是: ②SqlServer中查看一个函数被哪些函数或存储过程调用 阅读全文
posted @ 2012-12-05 11:21 のんきネコ 阅读(131) 评论(0) 推荐(0) 编辑
摘要:HttpWebRequest和HttpWebResponse用来获取从一个页面传过来的值。 想创建一个request,必须要用WebRequest.Create(url)方法,而不是直接new 一个HttpWebRequest。 而HttpWebRequest 是WebRequest的子类, 根据上 阅读全文
posted @ 2012-12-04 13:56 のんきネコ 阅读(237) 评论(0) 推荐(0) 编辑
摘要:委托的基本概念就不说了,我先简单说一下什么是多播委托。包含多个方法的委托就是多播委托。简单地举了例子:delegate void MyDelegate(); static void Main(string[] args) { MyDelegate my1 = Write; my1 += Read; Console.ReadLine(); } static void Write() { Console.WriteLine("Write t... 阅读全文
posted @ 2012-11-30 18:04 のんきネコ 阅读(288) 评论(0) 推荐(0) 编辑
摘要:上次公司内部考试时考到了,但是没用过,考到了一大片。今天看书的时候又看到这个方法,于是稍微分析了一下。 public class Test { public static void Main(string[] args) { int bookIndex; string[] book1 = { "book1", "book7", "book3" }; bookIndex = Array.BinarySearch(book1,"book3"); Con... 阅读全文
posted @ 2012-11-23 16:37 のんきネコ 阅读(1923) 评论(1) 推荐(0) 编辑