Extern alias
Peponi │ 12/9/2024 │ 2m
C#
SyntaxKeywordNamespace
Extern alias
12/9/2024
2m
Peponi
C#
SyntaxKeywordNamespace
1. Introduction
using 지시문을 여러 어셈블리를 대상으로 사용하는 경우, 형식이 동일한 경우가 발생할 수 있다. 이 때, extern alias
키워드를 이용하여 각 어셈블리의 별칭을 생성할 수 있다.
2. Example
아래와 같은 namespace, class name이 동일한 두 어셈블리가 존재한다고 가정한다.
namespace ClassLibrary
{
public class Class
{
public Class() => Console.WriteLine("Assembly1");
}
}
namespace ClassLibrary
{
public class Class
{
public Class() => Console.WriteLine("Assembly2");
}
}
프로젝트에 두 어셈블리를 참조한 후, 종속성 참조 속성에 별칭을 추가하거나 아래와 같이 프로젝트 파일에 alias를 추가한다.
<ItemGroup>
<Reference Include="ClassLibrary1" Aliases="ClassLibrary1">
<HintPath>..\ClassLibrary1.dll</HintPath>
</Reference>
<Reference Include="ClassLibrary2" Aliases="ClassLibrary2">
<HintPath>..\ClassLibrary2.dll</HintPath>
</Reference>
</ItemGroup>
코드 파일에서는 extern alias
및 using
선언 후 사용한다.
extern alias ClassLibrary1;
extern alias ClassLibrary2;
using Class1 = ClassLibrary1.ClassLibrary.Class;
using Class2 = ClassLibrary2.ClassLibrary.Class;
namespace ConsoleApp1
{
internal class Program
{
private static void Main(string[] args)
{
Class1 c1 = new Class1();
Class2 c2 = new Class2();
}
}
}