IL2026: RequiresUnreferencedCode 특성이 부여된 멤버는 트리밍 시 중단될 수 있습니다.
원인
RequiresUnreferencedCodeAttribute로 주석이 추가된 멤버를 호출(또는 리플렉션을 통해 액세스)
예시:
[RequiresUnreferencedCode("Use 'MethodFriendlyToTrimming' instead", Url="http://help/unreferencedcode")]
void MethodWithUnreferencedCodeUsage()
{
}
void TestMethod()
{
// IL2026: Using method 'MethodWithUnreferencedCodeUsage' which has 'RequiresUnreferencedCodeAttribute'
// can break functionality when trimming application code. Use 'MethodFriendlyToTrimming' instead. http://help/unreferencedcode
MethodWithUnreferencedCodeUsage();
}
규칙 설명
RequiresUnreferencedCodeAttribute는 멤버가 트리머에 의해 제거될 수 있는 코드를 참조함을 나타냅니다.
일반적인 예는 다음과 같습니다.
로드 중인 어셈블리가 트리밍된 멤버에 액세스할 수 있으므로 Load(String)는
RequiresUnreferencedCode
로 표시됩니다. 트리머는 애플리케이션에서 직접 사용하는 멤버를 제외하고 프레임워크에서 모든 멤버를 제거하므로, 런타임에 새 어셈블리를 로드하면 누락된 멤버에 액세스하려고 할 가능성이 높습니다.XmlSerializer
는 리플렉션을 사용하여 입력 형식을 검사하기 때문에 XmlSerializer는RequiresUnreferencedCode
로 표시됩니다. 리플렉션은 트리머에서 추적할 수 없으므로 입력 형식에서 전이적으로 사용되는 멤버는 잘릴 수 있습니다.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET