Partager via


IL2076 : l’argument générique « target generic parameter » ne satisfait pas « DynamiqueAccessedMembersAttribute » dans « target method or type ». La valeur renvoyée de la méthode « source method » n’a pas d’annotations correspondantes. La valeur source doit déclarer au moins les mêmes exigences que celles déclarées sur l’emplacement cible auquel elle est affectée

Cause

L’emplacement cible déclare certaines exigences sur la valeur de type via son DynamicallyAccessedMembersAttribute. Ces exigences doivent être respectées par celles déclarées sur la valeur source également via le DynamicallyAccessedMembersAttribute. La valeur source peut déclarer plus d’exigences que la cible, si nécessaire.

Exemple

public void GenericWithAnnotation<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.Interfaces)] T>()
{
}

Type GetType() => typeof(int);

void TestMethod()
{
    // IL2076 Trim Analysis: AnnotatedGenerics.TestMethod(Type): 'T' generic argument does not satisfy 'DynamicallyAccessedMemberTypes.Interfaces' in 'GenericWithAnnotation<T>()'. The return value of method 'GetType()' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to
    typeof(AnnotatedGenerics).GetMethod(nameof(GenericWithAnnotation)).MakeGenericMethod(GetType());
}

Résolution

Pour plus d’informations, consultez Correction des avertissements.