Este artigo apresenta um método geral para acessar e extrair dinamicamente os valores da propriedade de uma classe.
define um método comum que aceita parâmetros de tipo:
public string GetDomainName()
]
dentro do método:
use typeof (t) .getCustomattributes
para recuperar atributos personalizados:
var dnAttribute = typeof(T).GetCustomAttributes(
typeof(DomainNameAttribute), true
).FirstOrDefault() as DomainNameAttribute;
Se a propriedade existir, seu valor será retornado:
if (dnAttribute != null)
{
return dnAttribute.Name;
}
Caso contrário, retorne nulo:
return null;
]
Para aplicabilidade mais ampla, generalize este método para lidar com qualquer atributo:
public static class AttributeExtensions
{
public static TValue GetAttributeValue(
this Type type,
Func valueSelector)
where TAttribute : Attribute
}
dentro do método de extensão:
Recupere as propriedades personalizadas:
var att = type.GetCustomAttributes(
typeof(TAttribute), true
).FirstOrDefault() as TAttribute;
Se o atributo existir, use o fornecido valoresElector
para extrair o valor necessário:
if (att != null)
{
return valueSelector(att);
}
Caso contrário, retorne o valor padrão deste tipo:
return default(TValue);
]
domainname
atributo de myclass
: string name = typeof(MyClass).GetDomainName();
myclass
usando o método de extensão: string name = typeof(MyClass)
.GetAttributeValue((DomainNameAttribute dna) => dna.Name);
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3