我将此作为我的 dll 的主要类:
namespace PTEmu
{
public class DatabaseProtocol : IDatabaseProtocol
{
(constructors and methods)
}
}
我使用此代码加载 DLL 并创建类的实例
var assembly = Assembly.LoadFrom("database\\" + file);
var t = assembly.GetType("PTEmu.DatabaseProtocol");
var protocol = Activator.CreateInstance(t) as IDatabaseProtocol;
Assembly.LoadFrom, assembly.GetType
和Activator.CreateInstance
它本身,不会抛出任何错误。
我看不出有什么问题,因为我从另一个可以正常工作的项目中获取了这段代码。
如果我删除as IDatabaseProtocol
,它会返回一个对象,但不是像我想要的接口那样的对象,所以我可以轻松地调用这些方法......