自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

转载 C#综合揭秘——细说事务

细说事务 整理自风尘浪子ACID特性 原子性(Atomicity):当事务结束,它对所有资源状态的改变都被视为一个操作,这些操作要不同时成功,要不同时失败。一致性(Consistency):操作完成后,所有数据必须符合业务规则,否则事务必须中止 。隔离性(Isolation):事务以相互隔离的方式执行,事务以外的实体无法知道事务过程中的中间状态。持久性(Durable):事务提交后,数

2017-07-25 17:22:46 300

原创 C#找出接口的所有实现类并遍历执行这些类的公共方法

先找出继承自该接口的接口和实现类,然后遍历这些类型,实例化实现类,最后执行接口的方法。 var type = typeof(IConfigRepository); var types = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(s => s.GetTypes())

2017-07-14 14:01:33 4005

原创 设计模式(10)——组合模式

为什么使用组合模式?  在实际开发过程中,客户端希望以一致的方式操作简单和复杂对象。但是由于简单对象和复杂对象功能上的区别,在使用的时候经常会进行区分使用,组合模式就是解决这样的问题的。 什么是组合模式?  组合模式:将对象组合成树形结构以表示“部分–整体”的层次结构。组合结构使用户对单个对象和组合对象的使用具有一致性。具体的案例为:系统的目录结构、网站的导航菜单结构等。 怎样使用组合模

2017-06-14 11:01:55 332

原创 设计模式(9)——装饰器模式

为什么要使用装饰器模式?  在扩充一个类对象的功能的时候,经常使用继承的方式,但是当组合很多的时候,会出现很多的子类,造成“类爆炸”。使用装饰器模式:将一个类的对象嵌入到另一个对象中,由另一个对象来决定是否调用嵌入对象的行为以便扩展自己的行为。 什么是装饰器模式?    动态地给一个对象增加一些额外的职责(Responsibility),就增加对象功能来说,装饰模式比生成子类实现更为灵活。其

2017-05-24 20:27:09 266

原创 设计模式(8)——桥接器模式

什么是桥接器模式?    将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。 为什么使用桥接器模式?    对于有两个维度扩展的类,使用桥接器模式,可以使继承关系变为关联关系,从而降低类之间的耦合。 如何使用桥接器模式?    桥接器模式包含四个角色:抽象类扩充抽象类实现

2017-05-24 17:02:23 333

原创 学习领域驱动之前的准备——事件驱动

王德水的博客浅显易懂的讲解了使用事件驱动的原因及实现方法,值的新手一读。为什么使用事件驱动?  在程序开发过程中,如果对某一个对象状态的改变,需要相应的做很多操作,这样在一个类中就引入了很多的接口,这样写出来的代码就并不符合单一职责原则。   那如何去解决这样的一个问题,就引入了事件驱动。改进后的方法是,在这个对象改变时,发送一个通知,订阅这个通知的类,做出相应的响应。如何实现事件驱动?  一个

2017-03-31 16:35:46 794

原创 学习领域驱动之前的准备——“四色原型”

四色原型时刻-时间段原型(Moment-Interval Archetype) 某个时刻或某一段时间内发生的某个活动。使用粉红色表示,简写为MI。例如:在消费者购买商品的场景中,一个订单就是消费者在某段时间发生的某个活动。当事人-地点-物品原型(Party-Place-Thing Archetype) 在某个地点参与某个活动的人或物。使用绿色表示。简写为PPT。 例如: 消费者就是PPT。

2017-03-30 15:59:33 1534

原创 设计模式(7)——适配器模式

什么是适配器模式?  适配器模式(Adapter Pattern):将一个接口转换为客户端希望的另一种接口,使得原本接口不兼容的一些类可以一起工作。适配器模式包含两种形式,一种是类的适配器,另一种是对象的适配器模式。 为什么使用适配器模式?  在一般情况下,客户端可以通过目标类的接口来访问他所提供的服务。有时候,现有的类可以满足客户端的需求,但是所提供的接口与客户端不匹配,比如类名不同,这时

2017-03-29 14:25:21 183

原创 设计模式(6)——原型模式

什么是原型模式?  原型模式(Prototype Pattern):通过复制一个已经存在的实例来返回新的实例,被复制的这个实例就称之为原型。原型模式多用于创建复杂的或用时较多的实例,因为这种情况下,复制一个已经存在的实例可以使程序运行更高效。 为什么使用原型模式?当我们的对象类型不是开始就能确定的,而这个类型是在运行期确定的话,那么我们通过这个类型的对象克隆出一个新的对象比较容易一些; 有的

2017-03-28 18:46:46 229

原创 设计模式(5)——建造者模式

什么是建造者模式?构造者模式(Bulder Pattern):将一个复杂对象的构建与表示分离,使得同样的构建可以创建不同的表示。 为什么使用建造者模式?  “复杂对象相当于一辆有待建造的汽车,而对象的属性相当于汽车的部件,建造产品的过程就相当于组合部件的过程。由于组合部件的过程很复杂,因此,这些部件的组合过程往往被“外部化”到一个称作建造者的对象里,建造者返还给客户端的是一个已经建造完毕的完

2017-03-28 15:06:11 304

原创 设计模式(4)——抽象工厂模式

为什么使用抽象工厂模式?  在工厂方法模式中,是一个工厂生产一个特定的产品,但是有时需要一个工厂生产一组产品。这样的一组产品称之为产品族。 例如 戴尔工厂生产的 鼠标、键盘、显示器等,就属于一个产品族。 而不同的工厂如华硕也生产上面一些产品,这些相同产品不同品牌就构成了产品等级结构。   产品等级结构描述的是,产品的继承结构,抽象产品到具体产品就构成了产品等级结构。   产品族描述的是同一

2017-03-28 11:33:53 155

原创 使用PostAsJsonAsync时出现缺少Newtonsoft.Json4.5.0引用的问题

解决使用PostAsJsonAsync缺少Newtonsoft.Json 4.5.0 引用的问题

2017-03-28 10:41:11 2268

原创 设计模式(3)——工厂方法模式

什么是工厂方法模式?在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化延迟到工厂子类中完成,即通过工厂子类来确定具体实例化那一个具体的产品类。 为什么要使用工厂方法模式?在工厂方法模式中,客户端只需要知道创建产品的工厂,不需要知道创建产品的细节,也不需要知道产品类的类名。在添加新产品时,不需要修改抽象工厂和抽象产品提供

2017-03-26 19:04:47 175

原创 C# 生成时间戳

解决C#生产时间戳错误的问题

2017-03-21 14:14:07 400

原创 设计模式(2)————简单工厂模式

什么是简单工厂模式?简单工厂模式:又称静态方法模式(因为工厂类都有一个创建对象的静态方法)。是通过专门定义一个类来创建一个实例,创建的实例通常都有共同的父类。 为什么会有简单工厂模式?简单工厂模式解决了客户端直接依赖于对象的问题,工厂类可以根据传入的参数去判断应该创建什么类型的对象,用户在使用这些实例时不必了解这个对象是如何创建的,实现了对责任的分割。 缺点是由于工厂类集中了所有实例

2017-03-20 23:32:40 186

原创 设计模式(1)————单例模式

什么是单例模式?单例模式:保证一个类只有一个实例的实现方法。并提供一个访问他的全局访问点。 为什么会有单例模式?在现实生活中很多地方都体现了单例模式,例如网站的计数器,windows系统的回收站,多线程的线程池等。既然现实生活中有这样的应用场景,在软件领域必然会有对应的方法来实现。 如何实现单例模式?三要素:私有变量uniqueInstance来记录单例类的唯一实例。私有构造方法来

2017-03-19 23:07:36 155

原创 oracle vm virtualbox 安装centos无法选择64位

在网上查了一些资料,发现一些人说是要卸载hyper-v,由于我电脑的“打开或关闭windows服务”打不开,所以另寻解决方案。百度之后发现是由于未启用bios虚拟化,重启电脑,f2进入bios设置,找到Configuratio > Intel Virtual Technology > Enabled,即可解决。

2017-01-20 19:28:01 909

原创 DataAdapter和SqlBulkCopy的插入性能测试

DataAdapter 的插入代码 public static bool UpdateDataSet(SqlConnection con, DataSet dataset, string tableName) { string sql = string.Format(@"select * from {0} where 1=0", tableName);

2017-01-07 13:10:44 356

原创 DataAdapter的Update 无法找到 TableMapping['Table'] 或 DataTable“Table"

bug: 无法找到 TableMapping[‘Table’] 或 DataTable“Table”出错代码: DataSet ds = new DataSet(); da.Fill(ds,tableName); SqlCommandBuilder cb = new SqlCommandBuilder(da);

2017-01-06 19:01:56 1459

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除