1

因此,我的程序在其资源中有一个 DLL,我试图以这种方式读取它:

        Assembly assembly = Assembly.Load(Resources.func);
        Type type = assembly.GetType("Func");
        dynamic functions = Activator.CreateInstance(type);
        functions.Test();

由于某种原因,它不断在这一行抛出一个空错误:

dynamic functions = Activator.CreateInstance(type);

DLL 的命名空间是 Func,类的名称也是 Func。谁能帮我这个?过去一个小时我一直在谷歌搜索,但我找不到解决方案。

更新

当我使类成为非静态类并使用 assembly.GetType("Func.Func"); 时,它会在我执行 functions.Test(); 时引发 RuntimeBinder 异常。也许这有更多帮助?

4

2 回答 2

1

尝试使用Func类的完整类型名称。如果命名空间是Func并且类型是Func,你应该尝试使用:

Type type = assembly.GetType("Func.Func");
于 2013-03-31T14:05:12.897 回答
1

您可以使用GetType("Func.Func"),只要程序集成功加载,它将在名为 Func 的命名空间中返回一个名为 Func 的类。

于 2013-03-31T14:18:38.643 回答