IL3050: Unikaj wywoływania elementów członkowskich z adnotacjami "RequiresDynamicCodeAttribute" podczas publikowania jako natywna funkcja AOT
W przypadku publikowania aplikacji jako natywnej AOT (przez ustawienie PublishAot
właściwości na true
wartość w projekcie) wywoływanie elementów członkowskich z adnotacjami z atrybutem RequiresDynamicCodeAttribute
może spowodować wyjątki w czasie wykonywania. Elementy członkowskie z adnotacjami o tym atrybucie mogą wymagać dynamicznego tworzenia nowego kodu w czasie wykonywania, a natywny model publikowania AOT nie zapewnia sposobu generowania kodu natywnego w czasie wykonywania.
RequiresDynamicCodeAttribute wskazuje, że element członkowski odwołuje się do kodu, który może wymagać generowania kodu w czasie wykonywania.
// AOT analysis warning IL3050: Program.<Main>$(String[]): Using member 'System.Type.MakeGenericType(Type[])'
// which has 'RequiresDynamicCodeAttribute' can break functionality when AOT compiling. The native code for
// this instantiation might not be available at runtime.
typeof(Generic<>).MakeGenericType(unknownType);
class Generic<T> { }
struct SomeStruct { }
Elementy członkowskie oznaczone atrybutem RequiresDynamicCodeAttribute
zawierają komunikat zawierający przydatne informacje dla użytkowników, którzy publikują jako natywną funkcję AOT. Rozważ dostosowanie istniejącego kodu do komunikatu atrybutu lub usunięcie wywołania naruszającego.
Niektóre interfejsy API z adnotacjami RequiresDynamicCodeAttribute
nie wyzwalają ostrzeżenia w przypadku wywołania w określonym wzorcu. Aby uzyskać więcej informacji, zobacz Wewnętrzne interfejsy API oznaczone WymagaDynamicCode.
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię: