我正在尝试寻找一个IOC容器,它允许我将字段的映射数据存储在数据库中,并通过从数据库中提取字符串值来解析需要解析的接口或对象。
我见过的大多数例子都是用代码硬编码的接口,我希望需要解析的接口是动态的。
这是我通常看到的:
var taskController = container.Resolve<ITaskController>();这是我希望看到的:
var strTaskController = "ITaskController";
var taskController = container.Resolve(strTaskController);我确信我可以浏览所有IOC容器的文档,但我希望对于具有更多IOC经验的人来说,这是一个简单的问题。
发布于 2010-09-15 21:44:28
使用Unity,你可以做你想做的事情。基本上,如果您知道完整的类型名称,您可以首先这样做:
var type = Type.GetType("Fully.Qualified.Type.Name");
var resolvedInstance = container.Resolve(type);编辑:基于评论的,这是另一种方法:
string typeName = "MyTypeName";
var type = container.Registrations.FirstOrDefault(r => r.RegisteredType.Name == typeName);
if(type != null)
{
var resolvedInstance = container.Resolve(type.RegisteredType);
}发布于 2011-05-12 21:33:22
我想这就是我想要的答案。托管扩展框架http://msdn.microsoft.com/en-us/library/dd460648.aspx
当你找到一个新的框架来找到你的问题的确切解决方案时,你会爱上它。
发布于 2010-09-15 21:46:13
您可以使用Castle project中的IOC容器。
https://stackoverflow.com/questions/3718175
复制相似问题