12 2016 档案

摘要:实例生命周期决定在同一个服务的每个请求的实例是如何共享的。 当请求一个服务的时候,Autofac会返回一个单例 (single instance作用域), 一个新的对象 (per lifetime作用域) 或者在某种上下文环境中的单例。比如 一个线程 或者一个HTTP请求 (per lifetime 阅读全文
posted @ 2016-12-29 17:01 Sniper_ZL 阅读(2039) 评论(0) 推荐(0)
摘要:方法注入, 其实就是在注册类的时候, 把这个方法也注册进去. 那么在生成实例的时候, 会自动调用这个方法. 其实现的方法, 有两种. 准备工作: 1. 方法一 - 常规方法 执行时机 : 首先执行的, 肯定是Person的构造函数, 然后回去调用这个方法, 调用过程中, 发现了IAnimal 参数, 阅读全文
posted @ 2016-12-29 15:31 Sniper_ZL 阅读(1308) 评论(0) 推荐(0)
摘要:属性注入不同于通过构造函数方式传入参数. 这里是通过注入的方式, 在类创建完毕之后, 资源释放之前, 给属性赋值. 这里, 我重新弄一些类来演示这一篇吧. 1. 一般方法 这种方法, 不止可以注入属性, 还可以给字段赋值 2. 反射的方式 这里需要注意一点, 由于ClassC中有ClassD格式的属 阅读全文
posted @ 2016-12-29 11:42 Sniper_ZL 阅读(7613) 评论(0) 推荐(0)
摘要:游标这个在我目前的项目里面用的还不多, 但是其功能还是很强大的. 动态sql以前都没用过, 是跟着富士康(不是张全蛋的富土康哦)过来的同事学的. 还是挺好用的. 我的数据库方面, 跟他学了不少. 在此, 感谢他一下, 建华锅锅. 事务在前面的篇章中其实已经出现过了, 这个东西好像还是程序中用的比较多 阅读全文
posted @ 2016-12-28 14:37 Sniper_ZL 阅读(4225) 评论(0) 推荐(1)
摘要:Mysql提供的函数是在是太多了, 很多我都见过, 别说用了. 园子里面, 有人弄了一个比较全的. MYSQL函数 我这里会将他写的完全拷贝下来, 中间会插入一些自己项目中使用过的心得 一、数学函数 数学函数, 说实话, 我暂时还真没怎么用过, 就是在系统中做统计的时候, 也没用过. 能在程序中处理 阅读全文
posted @ 2016-12-27 16:53 Sniper_ZL 阅读(422) 评论(0) 推荐(0)
摘要:在数据库操作中, 尤其是碰到一些复杂一些的系统, 不可避免的, 会用到函数/自定义函数, 或者存储过程. 实际项目中, 自定义函数和存储过程是越少越好, 因为这个东西多了, 也是一个非常难以维护的地方. 一、自定义函数 1. 例子 mysql提供的函数, 不在这一篇讲了, 这里主要贴一下自定义函数. 阅读全文
posted @ 2016-12-27 14:46 Sniper_ZL 阅读(1120) 评论(0) 推荐(0)
摘要:触发器在之前的项目中, 应用的着实不多, 没有办法的时候, 才会去用这个. 因为这个东西在后期并不怎么好维护, 也容易造成紊乱. 我最近的项目中, 由于数据库设计(别人设计的)原因, 导致一些最简单功能, 查询起来, 都很麻烦和复杂. 牵涉表非常多, 表与表之间又互有部分关系. 我想说, 这是我见过 阅读全文
posted @ 2016-12-27 10:26 Sniper_ZL 阅读(1731) 评论(0) 推荐(0)
摘要:之前介绍了数据库的增删改查, 发现忘记了数据库的一些基本操作, 比如建库, 建表, 改表等等. 那这里就来小结一下数据库sql形式的基本操作. 一、库操作 1. 建库 在建库之前, 可能需要看一下, 数据库里面, 已经存在哪些库, 这样可以去处理重复的问题. 这里之所以会出现newdb, 是因为我已 阅读全文
posted @ 2016-12-26 15:35 Sniper_ZL 阅读(639) 评论(0) 推荐(0)
摘要:查询这块是重中之重, 关系到系统反应时间. 项目做到后期, 都是要做性能测试和性能优化的, 优化的时候, 数据库这块是一个大头. sql格式: select 列名/* from 表名 where 条件 group by 列 having 条件 order by 列 asc/desc; 这里牵涉到一个 阅读全文
posted @ 2016-12-26 11:44 Sniper_ZL 阅读(48665) 评论(1) 推荐(1)
摘要:因为项目原因, mysql用了两年了, 但是一直都未曾去总结过. 最近也是领导让总结项目, 才想起把mysql的使用小结一下. 一、 Create 1. 单条插入, sql格式: insert into (列名) values(列值); 对于自增的 Id, 是不需要写的, 数据库会自动生成, 但是如 阅读全文
posted @ 2016-12-23 11:55 Sniper_ZL 阅读(1487) 评论(0) 推荐(0)
摘要:最近这几天好忙, 基本没什么时间去学习. 不过好在, 最近项目中碰到了一个小功能, 索性就记录下来. 一、链型结构 链型结构的数据, 学过C 语言的童鞋肯定不会陌生, C 高级里面, 有一个链表的概念, 然后就是对链表各种插入, 删除, 拼接. 在C#中, 并没有那种链表的概念, 但是却可以使用别的 阅读全文
posted @ 2016-12-22 10:44 Sniper_ZL 阅读(384) 评论(0) 推荐(0)
摘要:这个星期, 领导要我总结项目中用到的一些技术, 然后交付文档. 嘿嘿, 奉命整理. 二维码, 相信很多项目中都会要求生成这个, 然后由手机端去扫描, 或存储一些详情信息, 或存储一条链接, 可以快捷访问. 一、示例 对这个二维码扫一扫, 就可以看到相关信息了. 二、参数解析 1. 容错率 二维码的容 阅读全文
posted @ 2016-12-19 14:25 Sniper_ZL 阅读(1961) 评论(0) 推荐(0)
摘要:Autofac在提供之前那些方法的时候, 同时提供了五个事件, 这一篇就看一下这几个事件. 一、五大事件 看一下结果: 额, 首先我得说明一下, 输出的顺序和我写事件的顺序是没有关系的, 不是说, 我事件写在前面, 输出就在前面. 从这张图上, 能看到, 对象创建时, 构造函数的调用时在中间的. 其 阅读全文
posted @ 2016-12-15 16:24 Sniper_ZL 阅读(672) 评论(0) 推荐(0)
摘要:通过程序集扫描, 能够自动注册符合规则的类型. 这种方式, 很方便. 这一篇就介绍下程序集扫描吧. 一、扫描 其实前面已经介绍过, 这种方式. 不过并不全. 先看一个之前的方式: 二、过滤 如果我并不想注册那么多的类型, 但是又想通过程序集的注册方式去注册, 那怎么办呢? 1. Where过滤 只需 阅读全文
posted @ 2016-12-15 14:00 Sniper_ZL 阅读(1628) 评论(0) 推荐(0)
摘要:从容器中的可用服务中, 选取一个构造函数来创造对象, 这个过程就是自动装配. 一、选择构造函数 默认情况下, autofac会使用无参构造函数, 去创建对象. 我将Person类稍微修改了下. 但是也可以通过传入参数的方式, 去自动选择使用哪一个构造函数. 还可以在注册的时候就指定使用哪一个构造函数 阅读全文
posted @ 2016-12-13 17:15 Sniper_ZL 阅读(677) 评论(0) 推荐(0)
摘要:上一篇中, 留了一个小问题,在一个接口下面, 注册多个类, 并能正常获取. 之前的方式是不能做到的, 在服务中, 有一种实现方式是可以的. 一、服务 1. 类型 - 描述服务的基本方法 上一篇其实使用到过这种方式, 只是并没有拿出来讲. 这个方法, 就可以将IAnimal类型的服务与Dog的组件连接 阅读全文
posted @ 2016-12-13 14:39 Sniper_ZL 阅读(573) 评论(0) 推荐(0)
摘要:快到年终了, 最近项目比较悠闲, 就想总结下, 项目中所使用到的一些技术, 以及使用方法. 之前有写过Dapper以及Dapper的一个扩展, 这些也是项目中使用过的. 算是一个温故而知新吧. 代码: 一、类型注册 类型的注册, 使用的方法是container.Resolve<Type>()和con 阅读全文
posted @ 2016-12-13 11:21 Sniper_ZL 阅读(599) 评论(0) 推荐(0)
摘要:如果你是一名建筑工人, 现在要建一栋十几层的楼房, 你会按照什么样的一个顺序去建造呢? 正常来说, 肯定是先打地基, 然后在此基础上, 建一层, 建第二层 ...... , 就现在中国的科技来说, 还没有说, 可以先建顶层, 再打地基, 在建倒数第二层, 这样一种随心所欲的建造方法来实现吧. 说白了 阅读全文
posted @ 2016-12-12 14:18 Sniper_ZL 阅读(311) 评论(0) 推荐(0)
摘要:原型模式从字面上来看, 可能还不是那么通俗, 通俗点讲, 可以说是拷贝模式. 从拷贝来说, 有完全拷贝, 和不完全拷贝. 就仿佛孙猴子的吹毛生猴, 但是这些小猴子明显就没有孙悟空本体厉害, 这种拷贝, 算是浅拷贝吧. 既然有浅拷贝, 那肯定也是有深拷贝的. 深拷贝就是小猴子与孙悟空本体一样厉害, 无 阅读全文
posted @ 2016-12-12 11:10 Sniper_ZL 阅读(335) 评论(0) 推荐(0)
摘要:前面已经介绍了新增/修改/删除了, 接下来介绍一下Rainbow的Read方法. 一、Read -- Rainbow原生 1. 先看测试代码 Rainbow在读取数据这一块, 就只提供了这几个方法, 当然, Dapper的方法, 在这里仍然是可以用的, 通过db.Query的方式就可以用了 2. 源 阅读全文
posted @ 2016-12-08 11:14 Sniper_ZL 阅读(3309) 评论(0) 推荐(0)
摘要:上一篇介绍了Rainbow的Create方法, 这里就来介绍一下Update方法吧, 毕竟新增和修改是双胞兄弟嘛. 一、Update 1. 测试代码: 使用方法和Insert方法类似, Update方法由两个参数, 第一个参数是Id, 第二个参数是dynamic data, 如果你不想更新全部的列, 阅读全文
posted @ 2016-12-08 09:16 Sniper_ZL 阅读(2489) 评论(0) 推荐(0)
摘要:Dapper这个ORM有许多扩展, 我自己用过两种, 也算是比较主流的两种, Rainbow和Extension, 这里就先介绍下Rainbow吧, 毕竟这个先用, 当然, 由于我使用的是mysql数据库(项目中, java和.net结合的, 所以mssql用不了, 就用了mysql), 所以在使用 阅读全文
posted @ 2016-12-07 17:12 Sniper_ZL 阅读(3178) 评论(0) 推荐(2)
摘要:观察者模式, 就像一群人在玩大家来找茬一样, 一幅一幅的玩. 这种玩的方式, 是类似于推拉模式中的推模式的. 推送给玩家的是, 两幅图片, 相同的部分和不同的部分都推送给你, 但是, 作为玩家来说, 其实更想要的, 只是不同的部分. 下面以一个简单的示意性实现为例,讨论观察者模式的结构。 观察者模式 阅读全文
posted @ 2016-12-07 09:50 Sniper_ZL 阅读(367) 评论(0) 推荐(1)
摘要:单例模式, 顾名思义, 就是共用同一个实体对象. 对于共用, 首先想到的就是static静态变量, 那么怎么使用static去实现单例呢. 一、单线程单例模式 由于这个模式的实现还是比较简单的, 所以直接上代码.(不推荐使用此方式) 私有化构造函数之后, 外部就不能通过new A()的方式来实例化A 阅读全文
posted @ 2016-12-05 16:04 Sniper_ZL 阅读(494) 评论(0) 推荐(0)