如何解决使用autofac解决在其他项目中注册的组件的依赖性
所以我有一个基础结构层(Project1),我在其中注册了所有模块,所以我使用的是Autofac,它像这样:
builder.RegisterType<MyConcreteClass>().As<IMyInterface>()
.WithParameter(new TypedParameter(typeof(string),"myParameter1"))
.WithParameter(new TypedParameter(typeof(string),"myParameter2"));
在另一个项目(Project2)中,我将调用一个服务MyService,该服务将调用MyConcreteClass,并且打算解决该问题,但不确定如何执行。首先,在第二个项目中找到了appsettings,它是一个dotnet核心项目,我知道我可以通过在此MyService中注入IConfiguration并随后添加类似以下内容来轻松获得appsettings:var myParam1 = Configuration["UsefulSettings:MyParameter1"]
两个问题:
-
我应该为Project1中的MyConcreteClass的c-tor解析参数吗,我在其中将MyConcreteClass注册为IMyInterface的实现(因此,基本上,我问是否应该同时注册并解析)?如果是这样,考虑到在Project2应用程序设置中找到了参数,我该怎么做?
-
如果我可以在Project2中解析MyConcreteClass(在Project1中注册后),该怎么做? 在Autofac文档中,我注意到他们使用了类似{https://autofaccn.readthedocs.io/en/latest/resolve/parameters.html)的内容:
var service = scope.Resolve<IMyInterface>()
.WithParameter(new TypedParameter(typeof(string),Configuration["UsefulSettings:MyParameter1"]))
.WithParameter(new TypedParameter(typeof(string),Configuration["UsefulSettings:MyParameter2"])));
...但是谁是范围?
那么,哪种方法更好,是1还是2,您能帮忙填补空白吗?
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。