Sdílet prostřednictvím


IL2026: Členové atributy RequiresUnreferencedCode mohou při oříznutí přerušit

Příčina

Volání (nebo přístup prostřednictvím reflexe) člena anotovaného pomocí RequiresUnreferencedCodeAttribute.

Příklad:

[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();
}

Popis pravidla

RequiresUnreferencedCodeAttribute označuje, že člen odkazuje na kód, který může být odebrán pomocí zatřihovacího objektu.

K běžným příkladům patří:

  • Load(String) je označen jako RequiresUnreferencedCode , protože načtené sestavení může přistupovat k členům, které byly oříznuty pryč. Zastřižení odebere všechny členy z rozhraní s výjimkou těch, které aplikace používá přímo, takže je pravděpodobné, že načtení nových sestavení za běhu se pokusí o přístup k chybějícím členům.

  • XmlSerializer je označen jako RequiresUnreferencedCode , protože XmlSerializer ke kontrole typů vstupu používá komplexní reflexi. Odraz nelze sledovat pomocí zastřihovače, takže členové mohou být přechodně využíváni vstupními typy.