我想动态加载一个或多个DLL,以便它们使用与我的主应用程序不同的安全性或基本路径运行.如何将这些DLL加载到单独的AppDomain中并从中实例化对象?
请考虑以下代码段:
var tuple1 = (7, "foo");
var tuple2 = (7, "foo");
var tuple3 = (42, "bar");
Assert.That(tuple1.Equals(tuple2), Is.True); //This passes
Assert.That(tuple1.Equals(tuple3), Is.False); //This passes
Assert.That(tuple1 == tuple2, Is.True); //This does not compile
Run Code Online (Sandbox Code Playgroud)
前两个断言通过.第三个不编译.
为什么ValueTuple实现了自定义的Equals方法但没有实现double equals运算符?
根据MSDN,BaseDirectory是AppDomain将查找要加载的DLL的位置,而ExecutablePath将提供原始可执行文件的路径(包括文件名).我知道一个有文件名,另一个没有.我知道如果我创建一个新的AppDomain,我可以给它一个不同的路径.但是从ExecutablePath中删除文件名并假设我只使用一个AppDomain,实际上,这两个路径之间有什么区别?它们是否总是相同(再次假设只有一个AppDomain)?有不同的例子吗?