基于字符串格式的名称返回类的类型

时间:2017-04-17 21:04:44

标签: c# types

我有一个我正在使用的代码库,如下所示

ORDER BY

每当我想要支持一个新类时,我必须添加一个using语句和一个新的case语句,它真的感觉这可以自动化了。

我尝试了类似下面的方法,但它有时会返回空值

SHOW CREATE TABLE

我读了一些帖子,例如this one,谈论必须设置程序集名称,但我仍然不确定如何做到这一点,并希望在正确的方向上提示。我知道visual studio可以找出程序集名称,因为它可以判断using namespace.scenario1; ... using namespace.scenarion; internal static Type GetType(string typeName) { switch(typeName) { case "class1": return typeof(class1); // namespace.scenario1.class1 ... case "classn": return typeof(classn); } } 表示internal static Type GetType(string typeName) { return Type.GetType(typeName); }

谢谢!

2 个答案:

答案 0 :(得分:0)

你需要做这样的事情:

Type type = Type.GetType("Namespace.MyClass, MyAssembly");

答案 1 :(得分:0)

internal static Type GetType(string typeName)
{
   return assembly.GetTypes().First(t => t.Name == typeName);     
   // Note: Exception occurs if it doesn't exist.       
}