Atributo no válido en tipo de declaración
-
06-07-2019 - |
Pregunta
Tengo el siguiente código pero obtengo los siguientes errores de compilación:
El atributo 'WebPartStorage' no es válido en este tipo de declaración. Solo es válido en declaraciones de 'propiedad, indexador'.
Y
El atributo 'FriendlyName' no es válido en este tipo de declaración. Solo es válido en declaraciones de 'propiedad, indexador'.
He modificado mi código del artículo de MSDN: http://msdn.microsoft.com/en-us/library/dd584174(office.11).aspx . ¿Alguien tiene alguna idea de lo que estoy haciendo mal que está causando este error?
[Category("Custom Properties")]
[DefaultValue(RegionEnum.None)]
[WebPartStorage(Storage.Shared)]
[FriendlyName("Region")]
[Description("Select a value from the dropdown list.")]
[Browsable(true)]
protected RegionEnum _Region;
public RegionEnum Region
{
get
{
return _Region;
}
set
{
_Region = value;
}
}
Solución
Parece que ha adjuntado el atributo al campo; los atributos siempre se adhieren a lo siguiente (en este caso, el campo). Debe reordenar para que se adhieran a la propiedad en lugar del campo.
Por cierto; los campos protegidos rara vez son una buena idea (deberían ser privados); pero especialmente si la propiedad es pública: ¿cuál es el punto?
protected RegionEnum _Region;
[Category("Custom Properties")]
[DefaultValue(RegionEnum.None)]
[WebPartStorage(Storage.Shared)]
[FriendlyName("Region")]
[Description("Select a value from the dropdown list.")]
[Browsable(true)]
public RegionEnum Region
{
get { return _Region; }
set { _Region = value; }
}
Otros consejos
El mensaje te dice, ¿no? Está intentando establecer el atributo en un campo, pero solo es válido en indexadores y propiedades.
protected RegionEnum _Region;
[Category("Custom Properties")]
[DefaultValue(RegionEnum.None)]
[Description("Select a value from the dropdown list.")]
[Browsable(true)]
[WebPartStorage(Storage.Shared)]
[FriendlyName("Region")]
public RegionEnum Region
{
get
{
return _Region;
}
set
{
_Region = value;
}
}
Espero que tenga usando Microsoft.SharePoint.WebPartPages;
, ¿verdad?