matlab 动态目录调用程序集,C#中如何动态添加程序集查找目录
C#中如何動態添加程序集查找目錄
情況如下:
現有三個程序集Main.exe, One.dll, Two.dll。其中One.dll引用了Two.dll, 并且One.dll與Two.dll部署在一起, 而Main.exe單獨部署。
在One.dll中有
using Two;
namespace One
{
public SomeType
{
public void DoSomething(){ AnotherType.Hello(); }
}
}
在Two.dll中有
namespace Two
{
public AnotherType
{
public static void Hello(){}
}
}
Main.exe運行時,首先將One.dll與Two.dll安裝到某一路徑下,之后動態加載One.dll并調用一個方法
...
var path = "某路徑\One.dll";
var assembly = Assembly.LoadFile(path);
var type = assembly.GetType("One.SomeType");
var obj = Activator.CreateInstance(type);
var method = type.GetMethod("DoSomething", BindingFlags.Public | BindingFlags.Instance);
if (method != null)
{
method.Invoke(obj, null);
}
...
現在問題是Main.exe在動態調用SomeType.DoSomething()時無法加載One.dll所依賴的Two.dll,因為One.dll,Two.dll與Main.exe是分開部署的,而且One.dll與Two.dll所在的路徑是在Main.exe運行時動態確定的(例如由用戶選擇)。
請問如何可以使Main.exe在運行時可以自動在One.dll的所在目錄中查找并加載Two.dll?
回δCat:
但是One.dll和Two.dll是別人已經shipped的,是不可以改的。改動只能在Main.exe中……
回a31232710:
您有何高見說來聽聽撒,俺這兒等著呢……
123456qqq
瀏覽 881回答 3
總結
以上是生活随笔為你收集整理的matlab 动态目录调用程序集,C#中如何动态添加程序集查找目录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux read recv,read
- 下一篇: e x泰勒 java_maven pro