我正在使用一種方法在AssemblyResolve事件上加載DLL。這不是我想要的方式。下面是一些代碼:程序集解析沒有完全加載我的DLL?
在我的窗體加載:
var a = AppDomain.CurrentDomain;
a.AssemblyResolve += (object sender, ResolveEventArgs args) => LoadDLL(sender, args, anArg);
LoadDLL:
public Assembly LoadDLL(object sender, ResolveEventArgs agrs, bool anArg){
//Let's just ignore anArg, it doesn't affect anything related to the problem
asseblyPath = @"XXX";//path to my dll
return Assembly.LoadFrom(assemblyPath);
}
所以,這一切都很好。我爲我的DLL設置Copy Local爲false,所以AssemblyResolve事件被調用,我可以加載我的DLL的所需版本。
正在發生一個奇怪的事情是這樣的:在運行此代碼後,我的代碼試圖從包含全局常量類訪問公共變量(這個類應該在我的DLL)。
public class GCV{
public GCV(){}
public string value1= "asdf";
}
不幸的是,當我在調試模式是,GCV.value1設置爲空時,它顯然有在類定義的值。這是我可以在這裏描述的一個症狀,希望足以診斷問題?
謝謝!
GCV.value1不是有效的表達,值1是不是類的靜態成員。 – 2011-03-14 16:45:26
刪除了「組裝」標籤;它用於彙編語言問題。 – 2011-03-14 17:26:24
謝謝重新分類我的問題,我有時可以得到一點點標籤快樂呵 – sooprise 2011-03-14 17:42:04