使用 lightinject 时,有没有办法使用外部配置文件中的字符串值来告诉容器注册文件中提到的服务?这将在 xml 文件或 web.config 文件中。
例如,在我的 web.config 中的前一个项目中,我将有以下行
<add key="PersonRepository.Interface.IPersonRepository" value="PersonRepository.Db.DbRepository,
PersonRepository.Db, Version=1.0.0.0, Culture=neutral"/>
我可以通过 WebConfigurationManager 调用获得值。此示例将具体类 PersonRepository.Db.DbRepository 名称作为字符串获取,然后可用于解析依赖关系。这是我过去使用过的一种方法,但无法弄清楚如何使用 lightinject 做同样的事情。这可能吗?
抱歉,如果这有点混乱,这是我第一次正确尝试依赖注入。
非常感谢。
再一次问好。我已经尝试了几天来实现您描述的方法,但没有成功。简明扼要地证明这一点;
var myString = "hello";
Type stringType = Type.GetType(myString);
container.Register<ICloneable, stringType>();
我从编译器得到错误'stringType'是一个变量,但它像一个类型一样使用。
在此处进一步阅读;
如何使用 typeof 或 GetType() 作为 Generic 的模板?
似乎这是对语言的限制。请问有什么想法吗?非常感谢。