Compartir por


IL2026: Los miembros con el atributo RequiresUnreferencedCode pueden fallar durante el proceso de reducir el tamaño del archivo.

Causa

Llamar a (o acceder a través de la reflexión) 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 un código que puede ser eliminado por el recortador.

Algunos ejemplos comunes son:

  • Load(String) se marca como RequiresUnreferencedCode porque el ensamblado que está siendo cargado podría acceder a miembros que han sido eliminados. El optimizador quita todos los miembros del framework, excepto los que utiliza directamente la aplicación, por lo que es probable que cargar nuevos ensamblados en tiempo de ejecución intente acceder a miembros que faltan.

  • XmlSerializer se marca como RequiresUnreferencedCode porque XmlSerializer usa una reflexión compleja para examinar los tipos de entrada. El recortador no puede realizar un seguimiento de la reflexión, por lo que los miembros utilizados transitivamente por los tipos de entrada podrían ser recortados.