Escribo algunos patrones personalizados de Resarper para advertirnos sobre algunas construcciones de código que requieren atención. Uno de éstos está reemplazando OnPropertyChanged ("String") con una variante lambda OnPropertyChanged (() => propertyname)Patrones personalizados de Resharper: Ignorar atributos de propiedad
el patrón de búsqueda he definido es:
public $type$ $property$
{
get { return $backingfield$; }
set
{
if($backingfield$ != value) {
$backingfield$ = value;
OnPropertyChanged($String$);
}
}
}
Este patrón está siendo reemplazado con:
public $type$ $property$
{
get { return $backingfield$; }
set
{
if($backingfield$ != value) {
$backingfield$ = value;
OnPropertyChanged(() => $property$);
}
}
}
Problema: al aplicar esto, ReSharper tira a la basura los atributos definidos en la propiedad. Este fragmento:
[MyAttribute]
public int Test
{
get { return _Test; }
set
{
if (_Test != value)
{
_Test = value;
OnPropertyChanged("Test");
}
}
}
es reemplazado con
public int Test
{
get { return _Test; }
set
{
if (_Test != value)
{
_Test = value;
OnPropertyChanged(() => Test);
}
}
}
¿Cómo puedo conservar los atributos ??
ACTUALIZACIÓN: Adición de un marcador de posición tipo derivado de System.Attribute tanto a buscar y reemplazar patrón corrige parcialmente.
[$Attributes$]
...
restante problema es que el marcador de posición Atributo sólo coincide con un atributo, se produce un error en múltiples atributos.
¿Realmente necesita buscar la propiedad completa? Tal vez solo puede buscar 'OnPropertyChanged ($ String $);' y reemplazarlo por 'OnPropertyChanged (() => $ String $);'. – brgerner
Al hacer esto, OnpropertyChanges ("prueba") se reemplaza con OnPropertyChanged ((= = "test"). El marcador de posición de prueba se define como una expresión de tipo cadena. – Yoeri
Tienes razón. Fue mi error. – brgerner