Freigeben über


IL2026: Mitglieder, die mit dem Attribut RequiresUnreferencedCode versehen sind, können beim Kürzen Fehler verursachen.

Ursache

Aufrufen (oder Zugreifen über Reflexion) eines Mitglieds, das mit RequiresUnreferencedCodeAttribute annotiert ist.

Beispiel:

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

Regelbeschreibung

RequiresUnreferencedCodeAttribute gibt an, dass der Member auf Code verweist, der vom Trimmer entfernt werden kann.

Häufige Beispiele sind:

  • Load(String) ist als RequiresUnreferencedCode gekennzeichnet, da die geladene Assembly möglicherweise auf Elemente zugreifen kann, die entfernt wurden. Der Trimmer entfernt alle Member aus dem Framework, mit Ausnahme der Elemente, die direkt von der Anwendung verwendet werden, sodass es wahrscheinlich ist, dass das Laden neuer Assemblys zur Laufzeit versucht, auf fehlende Member zuzugreifen.

  • XmlSerializer ist als RequiresUnreferencedCode markiert, weil XmlSerializer komplexe Reflexion nutzt, um Eingabetypen zu scannen. Die Spiegelung kann nicht vom Trimmer nachverfolgt werden, sodass elemente, die transitiv von den Eingabetypen verwendet werden, entfernt werden können.