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
omdatXmlSerializer
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.