IL2026: Członkowie przypisani elementom RequiresUnreferencedCode mogą ulec awarii podczas przycinania
Przyczyna
Wywoływanie (lub uzyskiwanie dostępu za pośrednictwem odbicia) elementu członkowskiego z adnotacją RequiresUnreferencedCodeAttribute.
Na przykład:
[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();
}
Opis reguły
RequiresUnreferencedCodeAttribute wskazuje, że element członkowski odwołuje się do kodu, który może zostać usunięty przez trymer.
Do powszechnych przykładów należą:
Load(String) jest oznaczony jako
RequiresUnreferencedCode
, ponieważ ładowany zestaw może uzyskiwać dostęp do elementów członkowskich, które zostały przycięte. Program trymer usuwa wszystkie elementy członkowskie ze struktury z wyjątkiem tych, które są bezpośrednio używane przez aplikację, więc prawdopodobnie ładowanie nowych zestawów w czasie wykonywania będzie próbowało uzyskać dostęp do brakujących elementów członkowskich.XmlSerializer jest oznaczony jako
RequiresUnreferencedCode
, ponieważXmlSerializer
używa złożonej odbicia do skanowania typów danych wejściowych. Odbicie nie może być śledzone przez trymer, więc elementy członkowskie przechodnio używane przez typy wejściowe mogą zostać przycięte.