随笔分类 -  笔记

20181124_webAPI基础01_创建一个基础的WebAPI项目
摘要:1. webApi属于RESTful架构风格, 而RESTful风格, 是以资源为视角来描述服务的 2. 创建webAPI项目 3. 选择webAPI, 然后mvc会自动引用 4. 点击确定, 就创建好一个WebAPI项目, 项目目录如下: 5. 现在就可以尝试访问了: 6. 简单介绍: a) 此时 阅读全文

posted @ 2018-11-24 10:44 印子 阅读(267) 评论(0) 推荐(0)

007委托和事件
摘要:委托: 委托是什么? 1. 本身是一个类, 继承自System.MulticastDelegate, 同时System.MulticastDelegate又继承了Delegate 2. 委托在实例化的时候, 必须传递一个参数, 参数就是方法的名称; 但是这个方法的签名(返回值类型, 参数个数)必须和 阅读全文

posted @ 2018-11-23 20:36 印子

20181123_控制反转(IOC)和依赖注入(DI)
摘要:一. 控制反转和依赖注入: 二. 一个简单的容器雏形, 部分代码示例: a) 这里相当于UI, 可以看做是高层 1 //全部都依赖细节 2 AndroidPhone phone = new AndroidPhone(); //这边的细节类, 可以看做是低层 3 //左边依赖于抽象, 但是右边还是在依 阅读全文

posted @ 2018-11-23 17:30 印子 阅读(242) 评论(0) 推荐(0)

20181122_C#中AOP_使用Unity实现AOP
摘要:一. 使用Unity的AOP实现 a) 整体项目截图: b) 添加Unity的Nuget包, 直接使用最新版就行, 需要添加两个 Unity 和 Unity.Interception (这个是为AOP做的一个扩展) c) AOP配置文件, 详细注释(CfgFiles\Unity.Config) 1 阅读全文

posted @ 2018-11-22 12:01 印子 阅读(1727) 评论(2) 推荐(0)

20181122_C#中AOP初探_装饰器模式的AOP_Remoting实现AOP_Castle实现AOP
摘要:一. 什么是AOP: a) AOP是面向切面编程; 就像oop一样, 它也是一种编程思想; i. Oop思想→一切皆对象, 对象交互组成功能, 功能叠加组成模块, 模块叠加组成系统; 如果把一个个的类比喻成一个个砖头, 那么系统就是一个房子; 房子是由一块块砖头构成, 所以面向对象非常适合做大型系统 阅读全文

posted @ 2018-11-22 11:54 印子 阅读(460) 评论(0) 推荐(0)

20181114_特性
摘要:一. 特性: 比如下图中的Obsolete是特性, CustomAttribute是特性(自定义的特性), Serializable也是特性 二. 特性的作用: a) 特性的核心作用:补充; 就像反射的核心作用一样: 动态 b) 影响编译器的运行; [Obsolete("请不要使用这个了,请使用什么 阅读全文

posted @ 2018-11-20 08:37 印子 阅读(232) 评论(0) 推荐(0)

20181114_反射_泛型反射
摘要:反射的核心: 动态; 利用反射, 一切都可以动态实现 一. 以下代码用到的People和PeopleDTO类代码: 三. 基于泛型的反射 a) 泛型类代码: b) 使用反射创建一个泛型类的实例代码: 四. 使用反射调用泛型类的泛型方法 a) GenericDouble类代码: b) 反射调用泛型类的 阅读全文

posted @ 2018-11-14 21:33 印子 阅读(155) 评论(0) 推荐(0)

20181112_反射基础_对象获取
摘要:一. C#中的反射 二. 反射的基本写法, 介绍 Load / LoadFile / LoadFrom: 三. 反射的简单应用, 使用工厂+配置文件+反射 动态创建不同对象实例 a) 配置文件内容: b) 工厂类代码: c) 调用: d) 测试: 看下下面的两个图, 然后做修改: 将右图的value 阅读全文

posted @ 2018-11-12 09:23 印子 阅读(169) 评论(0) 推荐(0)

20181110_wait和async
摘要:一. Awit和async的由来: await/async本身是一个语法糖,编译器提供的一个简化编程的功能; 在C#升级和.net Framework升级的时候, 产生的, 所以说并不是CLR的产物 二. 用法: a) Async出现在方法的声明上, 任何一个方法添加一个async关键字都不会报错 阅读全文

posted @ 2018-11-10 22:33 印子 阅读(580) 评论(0) 推荐(0)

20181106_线程之异常_取消_变量_安全Lock
摘要:一. 线程的异常处理: 二. 线程的取消, a) 场景: 多个线程并发,某个失败后,希望通知别的线程,都停下来, 尽量使用CancellationTokenSource, 不要自己创建bool变量 三. 多线程临时变量 四. 线程安全: 五. 关于Lock变量的写法解释: 六. 为什么不推荐锁thi 阅读全文

posted @ 2018-11-06 21:09 印子 阅读(158) 评论(0) 推荐(0)

20181105_线程之Task
摘要:Task是基于.net Framework3.0框架, Task使用的线程也是来自于ThreadPool 多线程的两个意义: 优化体验(常见于不卡界面), 提升运行速度(不同线程可以分担运算任务) 总结: 一. Task.Run→线程的启动是基于异步形式, 下面代码演示使用Task/new Task 阅读全文

posted @ 2018-11-05 21:00 印子 阅读(203) 评论(0) 推荐(0)

20181103_C#线程初探, BeginInvoke_EndInvoke
摘要:在C#中学习多线程之前, 必须要深刻的理解委托; 基本上所有的多线程都在靠委托来完成 一. 进程和线程: a) 进程和线程都是计算机的概念, 跟程序语言没有任何关系 b) 进程和线程都属于计算机操作系统自身控制和调度, 程序语言只有使用的份, 最终的控制权还是得操作系统说了算, 程序语言最多有提醒功 阅读全文

posted @ 2018-11-03 20:38 印子 阅读(214) 评论(0) 推荐(0)

20181102_WCF简单双工
摘要:2. 创建一个空白解决方案: 3. 创建几个基于.net framework的类库项目和一个基于.net Framework 的控制台项目, 然后将类库项目的class1.cs文件删除, 整体如下图: 4. 为每个类库添加对应的类文件: a) MyWCF.WCFSimpleDuplex.Interf 阅读全文

posted @ 2018-11-02 11:48 印子 阅读(152) 评论(0) 推荐(0)

20181101_将WCF寄宿到控制台
摘要:2. 创建以下代码进行测试: a) 创建一个空白解决方案 b) 创建三个类库文件 c) IMathService代码如下: d) WCFUser代码如下: e) Service代码如下: 3.接下来创建一个控制台程序, 并设置为启动项, 如下图 4. 打开App.config文件, 将下面的代码复制 阅读全文

posted @ 2018-11-01 14:50 印子 阅读(218) 评论(0) 推荐(0)

导航