Delen via


IL2026: Leden die zijn toegeschreven aan RequiresUnreferencedCode kunnen breken bij het bijsnijden

Oorzaak

Een lid aanroepen (of openen via weerspiegeling) met RequiresUnreferencedCodeAttributeeen aantekening.

Voorbeeld:

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

Beschrijving van regel

RequiresUnreferencedCodeAttribute geeft aan dat de lidcode verwijst die kan worden verwijderd door de trimmer.

Dit zijn enkele veel voorkomende voorbeelden:

  • Load(String) is gemarkeerd als RequiresUnreferencedCode omdat de assembly die wordt geladen, toegang heeft tot leden die zijn afgekapt. Met de trimmer worden alle leden uit het framework verwijderd, behalve de leden die rechtstreeks door de toepassing worden gebruikt. Het is dus waarschijnlijk dat het laden van nieuwe assembly's tijdens runtime probeert toegang te krijgen tot ontbrekende leden.

  • XmlSerializer is gemarkeerd als RequiresUnreferencedCode omdat XmlSerializer complexe weerspiegeling wordt gebruikt om invoertypen te scannen. De weerspiegeling kan niet worden bijgehouden door de trimmer, zodat leden die transitief door de invoertypen worden gebruikt, kunnen worden afgekapt.