伴娘醉亡获赔5万,起司猫qq表情包,我愿你知道谐音
autofac是比较简单易用的ioc容器。下面我们展示如何通过json配置文件,来进行控制反转。
需要用到以下程序集。可以通过nugget分别安装
microsoft.extensions.configuration.dll
microsoft.extensions.configuration.json
autofac.configuration.dll
注意,项目目标框架最好设置为.net framework 4.6.1及以上。因为microsoft.extensions.configuration.dll,依赖.netstandard2.0
下表列出了 .net standard 的所有版本及其支持的平台
using autofac; using autofac.configuration; using microsoft.extensions.configuration; namespace autofacconsole { public static class autofacext { private static icontainer _container; public static void initautofac() { // add the configuration to the configurationbuilder. var config = new configurationbuilder(); config.addjsonfile("autofac.json"); // register the configurationmodule with autofac. var module = new configurationmodule(config.build()); var builder = new containerbuilder(); builder.registermodule(module); // set the dependency resolver to be autofac. _container = builder.build(); } /// <summary> /// 从容器中获取对象 /// </summary> /// <typeparam name="t"></typeparam> public static t getfromfac<t>() { return _container.resolve<t>(); // return (t)dependencyresolver.current.getservice(typeof(t)); } public static t getfromfac<t>(string name) { return _container.resolvenamed<t>(name); } } }
public interface ioutput { void write(string content); }
public class consoleoutput : ioutput { public void write(string content) { console.writeline(content); } } class program { static void main(string[] args) { autofacext.initautofac(); var writer =autofacext.getfromfac<ioutput>(); writer.writedate(); console.readkey(); } }
autofac.json
{ "defaultassembly": "autofacconsole", "components": [ { "type": "autofacconsole.consoleoutput, autofacconsole", "services": [ { "type": "autofacconsole.ioutput,autofacconsole" } ], "instancescope": "single-instance", "injectproperties": true } ] }
设置为如果较新则复制
参考资料:
https://github.com/autofac/autofac
https://autofac.readthedocs.io/en/latest/getting-started/
https://autofac.readthedocs.io/en/latest/configuration/xml.html
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论