这些是类似的问题:如何在Silverlight中使用字符串加载引用程序集中的类型,在引用的程序集中对一个类使用GetType()失败,但是这两个回答都不起作用。
我有一个MVC项目,从数据库中获取包含以字符串形式表示的简单类型的数据。这些类型在引用程序集中,而不在MVC项目中。
例如,假设我的引用程序集名称为MyFramework
,普通类型名为Car
,完整的类型名称可能是MyFramework.Cars.Car
或MyFramework.Vehicles.Cars.Car
或其他一些变体。我只有引用程序集名称和普通类名称的字符串。无论完整类型名称如何,我该如何获得类型?
最后,我可以在引用程序集中编写一个调用GetType()的函数,并在MVC项目中使用它,以便省略包含程序集名称吗?我想要去除知道程序集名称的要求,所以我想在引用程序集中编写一个实用程序,例如:
namespace MyFramework //the referenced assembly
{
public static class TypeUtil
{
public static Type GetFrameworkType(string typeName)
{
return Type.GetType(typeName);
}
}
}
然后在我的MVC项目中,我可以调用它而不需要将程序集作为字符串名称传递。这是否可能或者我总是需要程序集名称?