IL2026: Los miembros a los que se les atribuye RequiresUnreferencedCode pueden interrumpirse al recortar
Causa
Llamada (o acceso mediante reflexión) a un miembro anotado con RequiresUnreferencedCodeAttribute.
Por ejemplo:
[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();
}
Descripción de la regla
RequiresUnreferencedCodeAttribute indica que el miembro hace referencia a código que el recortador puede quitar.
Algunos ejemplos frecuentes son:
Load(String) está marcado como
RequiresUnreferencedCode
porque el ensamblado que se está cargando puede acceder a los miembros que se han recortado. El recortador quita todos los miembros del marco, excepto los que usa directamente la aplicación, por lo que es probable que, al cargar nuevos ensamblados en tiempo de ejecución, se intente acceder a los miembros que faltan.XmlSerializer está marcado como
RequiresUnreferencedCode
porqueXmlSerializer
usa una reflexión compleja para examinar los tipos de entrada. El recortador no puede hacer el seguimiento de la reflexión, por lo que los miembros usados transitivamente por los tipos de entrada se pueden recortar.