Esta cuestión está relacionada, pero no el mismo que esto: How do you give a C# Auto-Property a default value?En C# ¿puedo hacer que la propiedad automática realice algún trabajo adicional con la ayuda de un atributo?
Me encanta auto-propiedades, pero a veces tengo que hacer algo como esto:
private string someName;
public string SomeName
{
get
{
return someName;
}
set
{
someName = value.Trim();
}
}
Si tengo que hacer lo mismo que muchos veces, empiezo deseando no tener que escribir tantas líneas/caracteres de código. Quiero ser capaz de interceptar el valor y cambiarlo especie de este modo:
public string Somename
{
get;
[Trim]
set;
}
¿Hay una manera de hacer algo como esto? ¿Sería estúpido? ¿Hay una mejor manera? ¿Algún otro comentario general? Lo admito, el ejemplo que di es un poco hipotético y no puedo encontrar el código exacto ahora que me hizo pensar en esto.
Gracias.
Gracias, ¿Microsoft no proporcionará sus propias soluciones para la Programación Orientada a Aspectos? –
Hasta cierto punto, con su objeto ContextBound, pero no es una solución muy buena para la mayoría de las implementaciones de AOP. Los tejedores de IL son mucho mejores en estos días y pueden trabajar con cualquier tipo de objeto, mientras que con el método de Microsoft tendrás que heredar de una clase común. –
Espera, ¿un "tejedor de IL" es algo que expande el azúcar sintáctico en códigos diferentes? ¿Es similar 'usando <=> try/finally', el código contrae magia? Pensaría que un error en un tejedor de IL sería algo difícil de rastrear, ya que podría confundir al depurador. –