从其资源加载DLL

时间:2013-03-31 14:02:34

标签: c# dll resources

所以,我的程序在其资源中有一个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异常。也许这会有所帮助吗?

2 个答案:

答案 0 :(得分:1)

尝试使用Func类的完整类型名称。如果命名空间为Func且类型为Func,则应尝试使用:

Type type = assembly.GetType("Func.Func");

答案 1 :(得分:1)

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