Aracılığıyla paylaş


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

Neden

ile RequiresUnreferencedCodeAttributeaçıklama ekli bir üyeyi çağırma (veya 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. Düzeltici, 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üklenirken eksik üyelere erişmeye çalışılı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.