IL2026: Medlemmar som tillskrivs RequiresUnreferencedCode kan brytas vid trimning
Orsak
Anropa (eller komma åt via reflektion) en medlem som kommenterats med RequiresUnreferencedCodeAttribute.
Till exempel:
[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();
}
Regelbeskrivning
RequiresUnreferencedCodeAttribute anger att medlemmen refererar till kod som kan tas bort av trimmern.
Vanliga exempel:
Load(String) markeras som eftersom sammansättningen som
RequiresUnreferencedCode
läses in kan komma åt medlemmar som har trimmats bort. Trimmern tar bort alla medlemmar från ramverket förutom de som används direkt av programmet, så det är troligt att inläsning av nya sammansättningar vid körning kommer att försöka komma åt saknade medlemmar.XmlSerializer markeras som
RequiresUnreferencedCode
eftersomXmlSerializer
använder komplex reflektion för att skanna indatatyper. Reflektionen kan inte spåras av trimmern, så medlemmar som transitivt används av indatatyperna kan trimmas bort.