我想将a转换System.Type为Generic Type定义,因此我可以使用它来调用Generic方法.基本上是相反的typeof.
示例(我使用"classof",我需要真正的解决方案,以便您看到我遇到问题的地方,因为classof不是真正的.NET方法):
public class BaseAppContext {
private Type settingsType;
public Type SettingsType
{
get { return this.settingsType; }
set { this.SettingsType = value; }
}
public void MyFunction() {
MyStaticClass.GetData<classof(this.SettingsType)>();
}
}
Run Code Online (Sandbox Code Playgroud)
更多信息为什么我使用这种奇怪的方式来处理问题.BaseAppContext是一个由许多其他类引用的类.如果我愿意使它成为通用,这将意味着代码的许多其他部分将改变,这是我不想要的.我正在编写一个框架,所以我希望框架能够输入一次类型,开发人员只需使用提供的函数,而无需在每次尝试调用方法时处理类型.
这是不可能的,因为SettingsType在运行时设置并且编译之间的代码<>.
您可以像这样创建类型的实例:
var type = Type.GetType(SettingsType);
var inst = Activator.CreateInstance(type);
Run Code Online (Sandbox Code Playgroud)
并inst转换为接口或基类.
由于你使用的是静态类,所以富人的答案会更好.
| 归档时间: |
|
| 查看次数: |
15555 次 |
| 最近记录: |