Мне нужно создать библиотеку C# для использования стороннего приложения, которое является COM-объектом. В настоящее время приложение находится в двух вариантах Version 1 (старый) и Version 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; }
}
}
ProgID для 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
Но я хочу, чтобы динамически изменять DLL образца на основе ProgID и использовать интерфейс IApplication.
В принципе, я хочу написать код, поддерживающий две версии dll (Sample1.dll и Sample2.dll).
Можете ли вы псевдоним dll другим именем .. вы знакомы с Alias в отношении .DLL/namespace ..? – MethodMan
Насколько я понимаю, если я использую псевдоним, я должен дублировать код для обеих версий кода. В моем случае я должен написать один код, который поддерживает обе версии. – Babu