我正在尝试在运行时在代码中动态创建类型化数据集的实例。我有可用的类型,但是当我尝试这样做时:

object obj = Activator.CreateInstance(Type.GetType("TYPED DATASET TYPE HERE"));

问题是,当我尝试运行它时,根据代码,该类型似乎无效。我在这里可能做错了什么?

有帮助吗?

解决方案

类型在哪里定义的?(哪个程序集)。

除非你给它一个程序集限定名称,否则它只会在 呼叫 组件和其他一些关键组件。选项:

  • 使用程序集限定名称(“somen.amespace.sometype,someassemble,...”)
  • 得到 Assembly 实例(来自该程序集中的已知类型),并使用 GetType(fullyQualifiedName)Assembly 实例

其他提示

假设你发射正确的数据集的代码可能还需要加载组件。

看到下面的.NET命名空间Reflection.Emit的,和反射。

您还可以看看开源项目,如温莎其使用反射发出新的类来创建拦截器。有可能是代码那里,你可以借鉴。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top