我希望能够在尝试使用Activator.CreateInstance
.
目前,我根据从我正在扩展的第 3 方应用程序中检索到的一些元数据构建了一个完全限定的类名。然后使用公共基类创建此类名称Activator.CreateInstance
并将其转换为公共基类。
我正在寻找类似的东西:
string className = "MyNamespace." + "some_arbitary_class_name";
if (Assembly.ClassExists(className))
{
// Create the class.
}
目前我有这个:
string class_name = "MyNamespace.BaseClassImpl_" + meta_data;
MyBaseClass baseClass = null;
try
{
baseClass = (BaseClass)Activator.CreateInstance(null, class_name);
}
catch (Exception e) { }
// If base class in null, failed.
我知道我需要用来System.Reflection
检查当前的程序集,但我不知道我需要使用的确切方法。
所以我的问题是双重的:
- 有人可以指导我使用我需要用来完成此操作的 .NET api 吗?
- 在创建类之前验证类是否存在是一种好习惯吗?还是我应该让
try-catch
块处理它?