아주~ 오랜 시간 동안 Attribute는 제네릭을 사용할 수 없었습니다.
[Test("Test")] // CS0404: "TestAttribute<T>" 특성 클래스를 적용할 수 없음 오류
class TestClass
{
}
class TestAttribute<T> : Attribute // CS0698: 특성 클래스로 제네릭 형식을 파생시킬 수 없음 오류
{
public T Value { get; }
public TestAttribute(T value) => Value = value;
}
하지만, roslyn/Language Feature Status.md at main · dotnet/roslyn (github.com)에 의하면, 이미 Visual Studio 2022 17.0 Preview 4에 포함되었다 합니다. 이 버젼 이후로는 위의 코드가 정상 처리 됩니다.
※ preview langversion
으로 C# 10 에 포함될지는 아직은 미지수입니다.