这个问题的上下文是一个 MVC 应用程序,它接受字符串并希望将它们转换为类型并将它们传递给通用代码。
- 我有一个输入类型的字符串表示形式。
- 我似乎永远无法在泛型方法 中放入
Type
变量。<>
- 这是否意味着我必须手动拼出所有可能的情况和通用方法调用?这是正确的方法吗?
- 如果 a
ModelBinder
能以某种方式找出我可以为 Action Method 提供泛型类型参数的类型,那就太酷了public ActionResult Something<T>()
。但我不知道这是否可能。
例子
public ActionResult DoSomething(string typeName, int? id)
{
var type = Type.GetType(typeName);
if (type == typeof(Apple)) DoSomethingElse<Apple>(id);
if (type == typeof(Orange)) DoSomethingElse<Orange>(id);
//if etc ... to infinity
}