Generics c#将变量值转换为对象

Generics c#将变量值转换为对象,generics,c#-4.0,unity-container,Generics,C# 4.0,Unity Container,我需要一种将变量值转换为对象的方法 让我们假设一个变量 string viewName = "taDataView"; 我需要一种方法将变量的值转换为如下内容: taDataView viewModel = Container.Resolve<taDataView>(); taDataView viewModel=Container.Resolve(); 像php中的eval()之类的东西 感谢您的帮助。一个选项是使用Unity的命名注册(请参阅Unity 2.0帮助文件中的按

我需要一种将变量值转换为对象的方法

让我们假设一个变量

string viewName = "taDataView";
我需要一种方法将变量的值转换为如下内容:

taDataView viewModel = Container.Resolve<taDataView>();
taDataView viewModel=Container.Resolve();
像php中的eval()之类的东西


感谢您的帮助。

一个选项是使用Unity的命名注册(请参阅Unity 2.0帮助文件中的按类型和注册名称解析对象)。您仍然需要知道基类型(通常是接口)

//创建容器和寄存器类型
var myContainer=new UnityContainer();
myContainer.RegisterType(“数据”);
myContainer.RegisterType(“日志记录”);
//检索每种类型的实例
var myDataService=myContainer.Resolve(“数据”);
var myLoggingService=myContainer.Resolve(“记录”);
或者,请参见(特别是)


编辑:修改示例以使用泛型。

您似乎正在使用IOC/DI框架。你能提到哪一个吗?在Silverlight和PRISM和Unity上使用这个。这个容器属于Unity。只是证实你的答案。
// Create container and register types
var myContainer = new UnityContainer();
myContainer.RegisterType<IMyService, DataService>("Data");
myContainer.RegisterType<IMyService, LoggingService>("Logging");

// Retrieve an instance of each type
var myDataService = myContainer.Resolve<IMyService>("Data");
var myLoggingService = myContainer.Resolve<IMyService>("Logging");