COM 개체 인 타사 응용 프로그램을 사용하려면 C# 라이브러리를 만들어야합니다. 현재 응용 프로그램은 아래에 언급과 같은 두 가지 버전 버전 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; }
}
}
Sample1.dll의 ProgID를가 Sample.Application.1하고 Sample2.dll이 Sample.Application입니다입니다. 2를 각각 나타낸다.
이제 프로젝트의 dll 버전을 참조하고 IApplication 인터페이스를 사용하고 싶습니다. 내가
1. Sample1.dll and use Sample.Application.1 as ProgID
2. Sample2.dll and use Sample.Application.2 as ProgID
를 참조하지만 난 동적으로 ProgID를 기반으로 샘플 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);
}
}
위의 코드
작동합니다.기본적으로 두 가지 버전의 dll (Sample1.dll 및 Sample2.dll)을 지원하는 코드를 작성하고 싶습니다.
다른 이름으로 dll을 별칭으로 지정할 수 있습니까? .DLL/namespace와 관련하여 Alias에 익숙합니까? – MethodMan
내 이해대로, 별칭을 사용하는 경우 두 버전의 코드에 대한 코드를 복제해야합니다. 제 경우에는 두 버전을 모두 지원하는 단일 코드를 작성해야합니다. – Babu