【问题标题】:c# Convert variable value to objectc# 将变量值转换为对象
【发布时间】:2011-01-26 19:04:32
【问题描述】:

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

假设一个变量

string viewName = "taDataView";

我需要一种方法将变量的值转换成这样的:

taDataView viewModel = Container.Resolve<taDataView>();

php 中的 eval() 之类的...

感谢您的帮助。

【问题讨论】:

  • 您似乎正在使用 IOC/DI 框架。能说说是哪一个吗?
  • 在具有 PRISM 和 Unity 的 Silverlight 上使用它。这个容器属于 Unity。

标签: generics c#-4.0 unity-container


【解决方案1】:

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

// 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");

或者,请参阅Create an object knowing only the class name(尤其是Marc Gravell's answer)。

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

【讨论】:

猜你喜欢
  • 2016-08-02
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 2015-04-14
  • 1970-01-01
  • 1970-01-01
  • 2012-08-28
  • 1970-01-01
相关资源
最近更新 更多