我必須創建一個C#庫才能使用第三方應用程序,它是一個COM對象。目前,該應用程序有兩個版本版本1(舊)和第2版(新),如下提,根據用戶輸入在運行時動態更改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; }
}
}
的進程id爲Sample1.dll是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
但我要動態地改變根據的ProgID樣品DLL和使用IApplication接口。
基本上我想編寫支持兩個版本的DLL(Sample1.dll和Sample2.dll)的代碼。
你可以別名的DLL的一個不同的名稱..你是否熟悉與.DLL /名稱空間的別名..? – MethodMan
正如我的理解,如果我使用別名,我必須複製兩個代碼版本的代碼。在我的情況下,我必須編寫一個支持這兩個版本的代碼。 – Babu