Este artículo presenta un método general para acceder dinámicamente y extraer valores de propiedad de una clase.
Defina un método común que acepte parámetros de tipo:
public string GetDomainName()
]]
dentro del método:
use typeof (t) .getCustomAttributes
para recuperar atributos personalizados:
var dnAttribute = typeof(T).GetCustomAttributes(
typeof(DomainNameAttribute), true
).FirstOrDefault() as DomainNameAttribute;
Si la propiedad existe, su valor se devuelve:
if (dnAttribute != null)
{
return dnAttribute.Name;
}
de lo contrario, return null:
return null;
]
Para una aplicabilidad más amplia, generalice este método para manejar cualquier atributo:
public static class AttributeExtensions
{
public static TValue GetAttributeValue(
this Type type,
Func valueSelector)
where TAttribute : Attribute
}
dentro del método de extensión:
recuperar propiedades personalizadas:
var att = type.GetCustomAttributes(
typeof(TAttribute), true
).FirstOrDefault() as TAttribute;
Si el atributo existe, use el valor proporcionado
para extraer el valor requerido:
if (att != null)
{
return valueSelector(att);
}
de lo contrario, devuelva el valor predeterminado de este tipo:
return default(TValue);
]]
domainName
atributo de myclass
: string name = typeof(MyClass).GetDomainName();
myclass
usando el método de extensión: string name = typeof(MyClass)
.GetAttributeValue((DomainNameAttribute dna) => dna.Name);
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3