在 C# 代码中加载.dll库时出现问题

本文关键字:问题 dll 代码 加载 | 更新日期: 2023-09-27 18:30:40

我找到了一些关于通过代码将.dll库直接加载到 C# 项目中的文章。这是我正在使用的当前代码:

            if (System.IO.File.Exists(dir + lib + ".dll"))
            {
                Assembly type = Assembly.LoadFrom(dir + lib + ".dll");
                object obj1 = type.CreateInstance(_namespace);

                assm.Add(obj1);
                return assm.Count - 1;
            }
            else
            {
                Console.WriteLine(dir + lib + ".dll: file does not exist");
                return -1;
            }

代码包含:

                Assembly type = Assembly.LoadFrom(dir + lib + ".dll");
                object obj1 = type.CreateInstance(_namespace);

假设找到.dll文件并将其作为实例加载,然后抓取类并从中创建对象。所以我可以创建一个库,其中包含一个用于打印 hello 的函数,然后将其加载到代码中,然后我可以通过创建类的实例来访问该函数。问题是当我做代码时:

                object obj1 = type.CreateInstance(_namespace);

obj1 为空,我知道为函数提供 namspace(我仔细检查并且是正确的),但无论如何它总是空的。我检查了库是否作为程序集加载,它是!以下是执行断点(悬停在对象类型上)时程序集的详细信息:

    {ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null}

提前感谢您的帮助,我不确定我的代码出了什么问题。

在 C# 代码中加载.dll库时出现问题

什么是_namespace?它必须包含类的全名(带有命名空间),例如System.Collections.ArrayList