【发布时间】:2012-08-14 19:52:11
【问题描述】:
是否可以在运行时从给定的程序集获取抽象类型?
我目前正在加载我的程序集:
Assembly assem = Assembly.LoadFrom("MyAssemblyName.dll");
但是我想这样做:
Type t = assem.GetType("Enterprise.Shared_Party_PersonType");
我的班级定义为:
public abstract class Shared_Party_PersonType
但是类型 t 返回 null。
我的最终目标是通过反射导航一个抽象类并获得一个列表 该抽象类的属性,类似于他们在这里所做的:access-to-properties-of-abstract-class-with-reflection
任何帮助将不胜感激。
解决方案:原来我加载了错误版本的 DLL,它不包含我试图加载的抽象类型。但是,现在我知道您可以像任何其他具体类型一样使用反射来导航和操作抽象类型。由于@Fuex 在仅反射上下文中加载程序集,我还了解了Assembly.RefelectionOnlyLoadFrom 方法
【问题讨论】:
-
是的,它是公开的:
public abstract class Shared_Party_PersonType -
@Adolfo 你只需要检查信息或调用/实例化类型吗?
-
@Fuex 我只需要递归检查抽象类型属性以提取满足某些条件的绑定路径。
-
好的,我发布了我的解决方案。
标签: c# reflection runtime abstract .net-assembly