Aracılığıyla paylaş


IL2026: RequiresUnreferencedCode ile özniteliklendirilen üyeler kırpılırken bozulabilir

Nedeni

RequiresUnreferencedCodeAttribute ile açıklama eklenmiş bir üyeyi çağırma (ya da yansıma yoluyla erişme).

Örneğin:

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

Kural açıklaması

RequiresUnreferencedCodeAttribute , üyenin düzeltici tarafından kaldırılabilir koda başvurduğunu gösterir.

Bazı yaygın örnekler aşağıdakileri içermektedir:

  • Load(String) olarak RequiresUnreferencedCode işaretlenir çünkü yüklenen Derleme kırpılmış üyelere erişebilir. Budayıcı, uygulama tarafından doğrudan kullanılanlar dışındaki tüm üyeleri çerçeveden kaldırır, bu nedenle çalışma zamanında yeni derlemeler yüklendiğinde eksik üyelere erişilmeye çalışılması olasıdır.

  • XmlSerializer olarak işaretlenir RequiresUnreferencedCode çünkü XmlSerializer giriş türlerini taramak için karmaşık yansıma kullanır. Yansıma, düzeltici tarafından izlenemez, bu nedenle giriş türleri tarafından geçişli olarak kullanılan üyeler kırpılabilir.