属性在声明类型上无效

时间:2009-10-26 12:30:46

标签: c# sharepoint sharepoint-2007 web-parts

我有以下代码但是我收到以下编译错误:

属性'WebPartStorage'在此声明类型上无效。它仅对'property,indexer'声明有效。

属性'FriendlyName'在此声明类型上无效。它仅对'property,indexer'声明有效。

我修改了MSDN文章中的代码:http://msdn.microsoft.com/en-us/library/dd584174(office.11).aspx。有没有人知道我做错了导致这个错误?

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

3 个答案:

答案 0 :(得分:7)

您似乎已将该属性附加到该字段;属性始终遵循 next 事物(在本例中为字段)。您应该重新订购,以便它们遵守属性而不是字段。

顺便说一句;受保护的领域很少是一个好主意(它们应该是私有的);但特别是如果财产是公开的:有什么意义呢?

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

答案 1 :(得分:1)

消息告诉你,不是吗?您正尝试将该属性设置为字段,但它仅对索引器和属性有效。

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

答案 2 :(得分:0)

希望你有using Microsoft.SharePoint.WebPartPages;,对吗?