在Asp.Net MVC上实现MEF IoC学习笔记

学习过程不再赘述,基本参考以前大神的博客
地址:http://www.cnblogs.com/guomingfeng/archive/2013/05/21/mvc-ioc-mef.html

虽然是第一次真正写MEF,但之前都看过很多有应用的项目,所以其实是自信满满的

然而,折腾了将近一个晚上,Import就是死活没有内容,直接返回一个null[汗]

在Asp.Net MVC上实现MEF IoC学习笔记

Export那边只是简简单单两个类的实现,应该没有问题,但是Import不到是怎么回事啊。。。结果反反复复各种查找和验证,终于问题解决(花了将近三个小时!)

总结下来关键是两点:

一、catalog除了包含export的程序集,也要包含import的程序集,也即是包含自己!一开始为了减少扫描的dll个数加了条件筛选,结果被自己给坑了(大部分时间都花在最后发现这个问题)

在Asp.Net MVC上实现MEF IoC学习笔记

二、Import的那个类自己本身也要加[Export],又是一件坑了自己的蠢事,觉得只要import不用export然后就删掉了那行

在Asp.Net MVC上实现MEF IoC学习笔记

最后正确结果输出的截图如下:

在Asp.Net MVC上实现MEF IoC学习笔记

谨以此笔记记录下让人无语的自己,也希望后人能看到少踩点坑。。。