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;
        }
    }
¿Fue útil?

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?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top