MEF依赖注入无法在在构造函数中使用的解决办法

在类初始化的时候,是先执行构造函数的,所以在构造函数里面使用特性注入会失败。所以可以使用构造函数的依赖注入方式。

var container = System.Web.HttpContext.Current.Application["Container"] as CompositionContainer;//声明容器
            AccountContract = container.GetExportedValueOrDefault<IAdministratorSiteContract>();//给字段赋值

时间: 2024-10-07 20:28:30

MEF依赖注入无法在在构造函数中使用的解决办法的相关文章

IoC 依赖注入、以及在Spring中的实现

资源来自网络: 去年火得不行的Spring框架,一般的书籍都会从IoC和AOP开始介绍起,这个IoC概念,个人感觉资料里都写得让人看得有些痛苦,所谓IoC,就是控制反转(Inversion of Control)的缩写,这个大家都知道,但是个人觉得理解这个概念,最好应该从依赖(dependence)开始讲起,以下观点由此展开: UML中依赖关系如A依赖于B,就是A中有对方的引用;也就是说依赖就是引用:A依赖于B,就是A使用B来做事情. 所谓依赖,举个例子说明,一个类Person,另一个类Car,

select中文字垂直居中解决办法

我们知道select标签在各个浏览器中的属性和各浏览器的支持各有些不同,从而造成select选择框在各浏览器的显示有不同,下面我们通过对主要 外形CSS属性的支持,打造全兼容select. 我对select的height.padding.line-height分别利用控制变量的方法写了个DEMO在各浏览器上测试三种情况:height.100.padding.0.height.no.padding.100.no.height.no.padding,结果如  链接图片各浏览器DEMO外观 我们可以得

《BI项目笔记》SSAS部署时发生的问题——元数据管理器中存在错误 解决办法

原文:<BI项目笔记>SSAS部署时发生的问题--元数据管理器中存在错误 解决办法 在生成和部署期间出错.是否继续?解决办法: 用Microsoft SQL Server Management Studio 连接Analysis Services 然后删除多维数据库,重新布署.这样就OK的.

Zabbix 监控图表中乱码的解决办法

一.问题背景 在Zabbix安装完成之后,Web前端页面语音设置为中文之后,图表中部分中文文字显示为乱码,如下图所示: 二.解决方案 2.1 执行以下命令 [[email protected] ~]# yum -y install wqy-microhei-fonts [[email protected] ~]# cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf cp:

MEF依赖注入实例

什么是MEF 先来看msdn上面的解释:MEF(Managed Extensibility Framework)是一个用于创建可扩展的轻型应用程序的库. 应用程序开发人员可利用该库发现并使用扩展,而无需进行配置. 扩展开发人员还可以利用该库轻松地封装代码,避免生成脆弱的硬依赖项. 通过 MEF,不仅可以在应用程序内重用扩展,还可以在应用程序之间重用扩展. 也有人把MEF解释为"依赖注入"的一种方式,那么什么是"依赖注入"?如果这样解释,感觉越陷越深......根据博

jquery中常见问题及解决办法小结

1 在开发开放聊天室的过程中,遇到使用ajax提交表单插入数据库时会插入两条数据的情况 解决办法,在ajax函数返回后,return false. $("#btn").click(function(){ $.ajax({ do something }); return false; })

【Linux】 无密码SCP在Crontab中失效的解决办法

一.缘由: 之前由于服务器只能密钥登陆,并限制root账户登陆,故用SSH打通了所有服务器,实现了公钥转发scp免输密码等,极大方便了服务器的管理. 最近有个需求,是做数据的异地备份.最简单的用scp脚本喽,但是脚本手动执行是OK的,放入crontab确实不能正常运行. 二.解决办法: 脚本执行失败,立马想到打印详细日志Debug,那scp -v 然后看日志,是因为密钥认证失败.我们SSH打通是基于ssh密钥转发的, 联想到之前crontab里拿不到环境变量的问题,可能问题就是crontab拿不

(原创)Windows下编译的Shell脚本不能再Linux中运行的解决办法

一.原理 Windows编译的文件和Linux编译的文件格式不太一样,导致在Linux运行Shell脚本的时候会提示:/bin/bash^M: bad interpreter: 没有那个文件或目录. 原因是这样的: 1.Windows编译的文件结束时(回车+换行) 2.Linux编译的文件结束时(换行)             这样导致了Windows编译的文件放在Linux中会有[noeol]和[dos]的Flag标示. 如果运行CAT命令可以更直观的看到两个不同操作系统产生的文件差异,Win

IE6/IE7中display:inline-block解决办法

IE6/IE7下对display:inline-block的支持性不好. 1.inline元素的display属性设置为inline-block时,所有的浏览器都支持: 2.block元素的display属性设置为inline-block时,IE6/IE7浏览器是不支持的: 对象呈递为内联对象,但是对象的内容作为块对象呈递.旁边的内联对象会被呈递在同一行,允许空格.(准确地说,应用此特性的元素现为内联对象,周围元素保持在同一行,但可以设置宽度和高度等块元素的属性) IE中对内联元素使用displ