J'ai Enum et tous ont un attribut personnalisé. Donc, je veux la valeur Enum grâce à l'attribut personnalisé fourni.Récupère la valeur ENUM à partir de l'attribut personnalisé
ENUM
public enum Language
{
[StringValue("af")]
Afrikaans,
[StringValue("sq")]
Albanian,
[StringValue("ar")]
Arabic,
[StringValue("be")]
Belarusian,
[StringValue("bg")]
Bulgarian,
[StringValue("ca")]
Catalan
}
je tente de mettre en œuvre ce code, mais je suis erreur "« Type » ne contient pas une définition pour « GetTypeInfo » et aucune méthode d'extension « GetTypeInfo » accepter un premier argument de type 'type' n'a pu être trouvée (vous manque une directive à l'aide ou une référence d'assemblage?) "
using System.Reflection;
public static T GetAttribute<T>(this Enum enumValue)
where T : Attribute
{
return enumValue
.GetType()
.GetTypeInfo()
.GetDeclaredField(enumValue.ToString())
.GetCustomAttribute<T>();
}
vous voulez une valeur d'attribut contre l'entrée de valeur ENUM? –
jetez un oeil à ceci: http://stackoverflow.com/questions/36208281/enum-to-list-as-an-extension/36209063#36209063 –