Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penyebab
Pemangkas tidak dapat menjamin bahwa semua persyaratan DynamicallyAccessedMembersAttribute terpenuhi jika metode diakses melalui pantulan.
Contoh
Peringatan ini dapat disebabkan oleh langsung mengakses metode dengan DynamicallyAccessedMembersAttribute pada parameter atau jenis pengembaliannya.
void MethodWithRequirements([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)] Type type)
{
}
void TestMethod()
{
// IL2111: Method 'MethodWithRequirements' with parameters or return value with `DynamicallyAccessedMembersAttribute` is accessed via reflection. Trimmer can't guarantee availability of the requirements of the method.
typeof(Test).GetMethod("MethodWithRequirements");
}
Peringatan ini juga dapat disebabkan oleh meneruskan jenis ke bidang, paramater, argumen, atau nilai pengembalian yang dianotasi dengan DynamicallyAccessedMembersAttribute. DynamicallyAccessedMembersAttribute menyiratkan akses refleksi atas semua yang tercantum DynamicallyAccessedMemberTypes. Ini berarti bahwa ketika jenis diteruskan ke parameter, bidang, parameter generik, atau nilai pengembalian yang dianotasi dengan PublicMethods alat .NET mengasumsikan bahwa semua metode publik diakses melalui pantulan. Jika jenis yang berisi metode dengan parameter anotasi atau nilai pengembalian diteruskan ke lokasi yang dianotasi dengan PublicMethods, maka IL2111 akan dinaikkan.
class TypeWithAnnotatedMethod
{
void MethodWithRequirements([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] Type type)
{
}
}
class OtherType
{
void AccessMethodViaReflection([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)] Type type)
{
}
void PassTypeToAnnotatedMethod()
{
// IL2111: Method 'MethodWithRequirements' with parameters or return value with `DynamicallyAccessedMembersAttribute` is accessed via reflection. Trimmer can't guarantee availability of the requirements of the method.
AccessMethodViaReflection(typeof(TypeWithAnnotatedMethod));
}
}