我想动态加载一个或多个DLL,以便它们使用与我的主应用程序不同的安全性或基本路径运行.如何将这些DLL加载到单独的AppDomain中并从中实例化对象?
我正在开发基于.NET的应用程序,其中一些核心应用程序类仅使用静态方法设计.
用法示例:
// static access.
Parameters.GetValue("DefaultTimeout");
// static access.
Logger.Log("This is an important message!");
Run Code Online (Sandbox Code Playgroud)
已经存在使用这些静态方法的代码,因此无法更改此"接口".
这些类目前没有实现接口.我希望能够将这些类的实际实现与其接口分开.
这种重构的原因是这些对象将跨AppDomain边界使用.我希望能够注入一个"代理"对象,在非主应用程序域上将调用其他实现而不是默认实现.
总之,我的问题是:
如何轻松地使用基于接口的设计的静态访问来转换对象,以便在需要时可以替换它们的实现(但保持静态访问).
一旦重构,应该如何/ WHEN实际注入非默认实现?