Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cause
Lorsque vous publiez une application en tant que AOT natif (en définissant la propriété PublishAot à true dans un projet), appeler des membres annotés avec l’attribut RequiresDynamicCodeAttribute peut entraîner des exceptions à l’exécution. Les membres annotés avec cet attribut peuvent nécessiter la possibilité de créer dynamiquement du code au moment de l’exécution, et le modèle de publication AOT natif ne permet pas de générer du code natif au moment de l’exécution.
Description de la règle
RequiresDynamicCodeAttribute indique que le membre fait référence au code qui peut nécessiter la génération de code au moment de l’exécution.
Exemple
// 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 { }
Comment corriger les violations
Les membres annotés avec l’attribut RequiresDynamicCodeAttribute ont un message qui fournit des informations utiles aux utilisateurs qui publient en tant qu’AOT natif. Envisagez d’adapter le code existant au message de l’attribut ou de supprimer l’appel non conforme.
Certaines API annotées avec RequiresDynamicCodeAttribute ne déclenchent pas d'avertissement lorsqu'elles sont appelées selon un modèle spécifique. Pour plus d'informations, voir les API intrinsèques marquées RequiresDynamicCode.