私は現在、Software Toolbox の TopServerを介して製造現場の PLC に接続するヘルパー ライブラリを作成しています。
TopServer ライブラリには x86 アーキテクチャと x64 アーキテクチャ用の個別のバージョンがあり、呼び出しコードの CPU アーキテクチャに基づく遅延バインディングを使用して、実行時に適切なバージョンをロードしたいと考えています。2 つのライブラリのメソッドは、同じシグネチャを持っています。
以下のコードを使用してリフレクションを使用して関連するオブジェクトを読み込むことができますが、呼び出し元のコードでこのインスタンスを使用する最良の方法は何だろうと思っています。
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);
}
}
私は遅延バインディングしているため、実行前に型を取得できないため、ライブラリ メソッドのシグネチャに基づいてインターフェイスを作成することは、両方のバージョンを実装するための良い方法になると考えていました。
この方法や他の方法に関する推奨事項について意見を持っている人はいますか?