这门课解决什么工作场景

很多做桌面端开发的程序员,在维护大型 C#+WPF 项目时,最头疼的不是界面写不出来,而是代码越写越乱。窗体和业务逻辑死死绑在一起,改一个功能牵连一片,最后整个项目变成谁都不敢碰的屎山。这门课聚焦的 IOC(控制反转)框架实战,解决的就是这个场景。它不教你怎么画按钮、写基础绑定,而是教你如何用依赖注入、事件总线、模块化编程这套组合拳,把庞大的桌面应用拆成一个个独立运转的模块。学懂这套架构思维,你写出来的 WPF 程序就能做到各模块解耦,后续无论是加新功能还是修旧 Bug,都不会再牵一发而动全身。

适合什么基础与建议学习路线

这门资料不适合零基础。看之前你得有基本的 C# 语法功底,知道泛型怎么用,并且能独立写出一个简单的 WPF 窗体程序。资料本身偏重底层原理和架构设计,一上来就讲接口设计和反射机制。如果你连普通的类继承都还没吃透,看这些代码会很吃力。建议先看前面几节讲 IOC 思维导图和依赖注入本质的内容,把概念在脑子里过一遍。接着重点啃透 Register 注册类型和 GetService 获取对象这两块核心逻辑,这是整个容器的地基。等这两块看明白了,再顺着往下看模块管理器的接口设计与实现。遇到反射、特性这些知识点不要跳过,它们是框架能跑起来的底层支撑。

学完能独立做什么与资料配合方法

  • 能独立从零手写一个简易的 IOC 容器,不再只依赖现成轮子,遇到框架报错能自己定位问题。
  • 能自己设计模块管理器,把复杂业务拆成独立模块加载,用事件总线做跨模块通信,真正搭建起可扩展的桌面应用骨架。
  • 资料配合练习时,别光盯着视频看。每看完一个接口设计,立刻打开 Visual Studio 自己敲一遍代码。先把注册和获取对象的主线写通,跑通一个最简单的注入例子,再往下补模块化加载的功能。


一堂课彻底搞懂IOC容器、控制反转、依赖注入、事件总线、模块化编程、特性、反射、委托、程序集等知识

课程目录

*   01 01-IOC框架开发思维导图介绍.mp4 (55.98 MB), 14:55

*   02 02-设计IOC容口的接口.mp4 (23.47 MB), 05:26

*   03 03-编写Register泛型方法以注册类型.mp4 (38.83 MB), 07:47

*   04 04-分析IOC注册类型的过程.mp4 (30.13 MB), 05:51

*   05 05-编写GetService泛型方法实现从IOC容器中获取对象.mp4 (61.62 MB), 10:58

*   06 06-依赖注入的本质是什么.mp4 (95.40 MB), 17:33

*   07 07-模块管理器的基接口设计.mp4 (38.97 MB), 09:11

*   08 08-模块管理器的实现.mp4 (20.57 MB), 04:03

*   09 09-定义IOC的IContainer接口和部分实现.mp4 (38.98 MB), 08:26

*   10 10-创建主窗体并显示.mp4 (42.45 MB), 08:45

*   11 11-配置模块目录.mp4 (15.41 MB), 03:11

*   12 12-实现手动注册模块.mp4 (34.47 MB), 06:55

*   13 13-加载dll程序集以及模块注册.mp4 (45.03 MB), 08:38

*   14 14-实现模块的自动注册.mp4 (44.39 MB), 08:25

*   15 15-实例化所有模块,并运行模块中的RegisterTypes方法.mp4 (41.14 MB), 08:21

*   16 16-理解类型注册的生命周期模式及特性是什么.mp4 (54.26 MB), 10:45

*   17 17-获取Type的构造器.mp4 (46.66 MB), 09:02

*   18 18-[重点]通过类型的无参构造器创建类型的对象实例.mp4 (41.95 MB), 08:28

*   19 19-[重点]创建工厂委托以实现类型的实例化.mp4 (60.03 MB), 11:09

*   20 20-调试IOC容器的注册对象和获取实例功能.mp4 (72.48 MB), 12:53

*   21 21-[重点]实现IOC容器的单例模式注册.mp4 (53.25 MB), 09:02

*   22 22-获取所有被标识为DependencyInjectionAttribute特性的类型的Type.mp4 (43.38 MB), 08:47

*   23 23-遍历DependencyInjection特性的InterfaceTypes集合.mp4 (47.59 MB), 09:25

*   24 24-[重点]以类型的Type为Key值注册类型到字典中.mp4 (44.61 MB), 08:27

*   25 25-[重点]以类型的Type为Key值注册类型到字典中2.mp4 (82.98 MB), 12:55

*   26 26-[重点]以接口的Type为Key值注册类型到字典中.mp4 (51.54 MB), 08:34

*   27 27-通过IOC容器创建主窗体的实例.mp4 (41.16 MB), 07:50

*   28 28-获取View与ViewModel实例,并创建View特性.mp4 (42.68 MB), 09:10

*   29 29-[重点]IOC容器实现View和ViewModel自动绑定.mp4 (84.03 MB), 15:40

*   30 30-事件转命名Microsoft.Xaml.Behaviors.Wpf组件.mp4 (33.46 MB), 06:48

*   31 31-[重点]ICommand实现RelayCommande及运行机制分析.mp4 (47.77 MB), 08:31

*   32 32-[重点]ICommand实现为泛型带参RelayCommande命令.mp4 (37.12 MB), 07:06

*   33 33-设计登录页面并创建User实体.mp4 (53.26 MB), 11:14

*   34 34-创建User表的增删改查接口.mp4 (42.92 MB), 09:26

*   35 35-安装Sqlite组件,创建SqliteDbContext.mp4 (66.04 MB), 12:17

*   36 36-以CodeFirst方式创建本地Sqlite数据库.mp4 (67.25 MB), 10:44

*   37 37-Sqlite数据库的增删改查操作.mp4 (50.28 MB), 08:39

*   38 38-事件总线的开发.mp4 (54.46 MB), 11:02

*   39 39-利用事件总线实现消息订阅和发布.mp4 (56.50 MB), 09:19

*   40 40-创建ImageView页面.mp4 (46.56 MB), 08:50

*   41 41-[重点]以类名在IOC中注册类型和获取对象.mp4 (71.66 MB), 11:11

*   42 42-利用INotifyPropertyChanged接口实现属性通知.mp4 (79.08 MB), 12:53