Pergunta

Eu tenho o seguinte código, mas eu estou recebendo os erros seguinte compilação:

O atributo 'WebPartStorage' não é válido neste tipo de declaração. Ele só é válida em 'propriedade, indexador' declarações.

e

O atributo 'FriendlyName' não é válido neste tipo de declaração. Ele só é válida em 'propriedade, indexador' declarações.

Eu modifiquei meu código do artigo MSDN: http://msdn.microsoft.com/en-us/library/dd584174(office.11).aspx . Alguém tem alguma idéia do que estou fazendo de errado que está causando esse erro?

  [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;
        }
    }
Foi útil?

Solução

Você parece ter anexado o atributo para o campo; atributos sempre respeitar o próximo coisa (neste caso, o campo). Você deve re-ordem para que eles aderem à propriedade em vez do campo.

BTW; campos protegidos são raramente uma boa idéia (que deve ser privado); mas especialmente se a propriedade é pública: o que é o ponto

?
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; }
}

Outras dicas

A mensagem diz a você, não é? Você está tentando definir o atributo para um campo, mas é válido somente em indexadores e propriedades.

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;
    }
}

Esperamos que você tenha using Microsoft.SharePoint.WebPartPages;, não é?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top