COMオブジェクトであるサードパーティアプリケーションを使用するにはC#ライブラリを作成する必要があります。現在、アプリケーションがSample1.dllについては、以下の言及、ユーザー入力に基づいて実行時にdllを動的に変更する
Version 1 (Sample1.dll)
namespace Sample
{
public interface IApplication
{
string Version { get; }
}
}
Version 2 (Sample2.dll)
namespace Sample
{
public interface IApplication
{
string Version { get; }
}
}
などの2つのバージョン(旧)バージョン1およびバージョン2(新)のProgIDであることSample.Application.1とSample2.dllがSample.Applicationです。 2となる。
私のプロジェクトでdllのバージョンを参照し、IApplicationインターフェイスを使用したいと思います。
static void Main(string[] args)
{
int version = 0;
if (int.TryParse(Console.ReadLine(), out version))
{
Type comType = Type.GetTypeFromProgID(String.Format("Sample.Application.{0}", version));
object item = Activator.CreateInstance(comType);
IApplication application = item as IApplication;
Console.WriteLine("Version: {0}", application.Version);
}
}
私は
1. Sample1.dll and use Sample.Application.1 as ProgID
2. Sample2.dll and use Sample.Application.2 as ProgID
を参照している場合、上記のコードは動作します。しかし、私は、動的にプログラムIDに基づいて、サンプルのDLLを変更し、IApplicationインターフェイスを使用します。
基本的に私は、dll(Sample1.dllとSample2.dll)の2つのバージョンをサポートするコードを記述したいと思います。
あなたは別の名前でdllを別名にすることができます。あなたは.DLL /名前空間についてはエイリアスに精通していますか? – MethodMan
エイリアスを使用すると、両方のバージョンのコードのコードを複製する必要があります。私の場合は、両方のバージョンをサポートする単一のコードを記述する必要があります。 – Babu