6
我目前正在編寫一個幫助庫,通過Software Toolbox's TopServer連接到車間PLC。基於CPU架構的DLL後期綁定
TopServer庫爲x86和x64體系結構提供單獨的版本,我希望在運行時使用基於調用代碼的CPU體系結構的延遲綁定加載相應的版本。兩個庫中的方法具有相同的簽名。
我可以使用反射來加載使用下面的代碼相關的對象,但我想知道在調用代碼中使用此實例的最佳方法是什麼。
public class LateBinding
{
public static T GetInstance<T>(string dllPath, string fullyQualifiedClassName) where T : class
{
Assembly assembly = System.Reflection.Assembly.LoadFile(dllPath);
Type t = assembly.GetType(fullyQualifiedClassName);
return (T)Activator.CreateInstance(t);
}
}
我敢後期綁定我不明白的各類預運行,以便在想,創建一個基於庫的方法簽名的接口將實現這兩個版本的好辦法。
有沒有人對這種方法或其他方法的建議有看法?
編譯到特定版本的問題是,編譯後的dll在另一個體繫結構上不起作用。如果我編譯爲x86,Software Toolbox DLL將不能在x64架構上運行 –
您是否將**程序集編譯爲「任何CPU」,「x86」或「x64」? – Gusdor
任何Cpu都是理想選擇。 –