Атрибут недействителен для типа объявления
-
06-07-2019 - |
Вопрос
У меня есть следующий код, но я получаю следующие ошибки компиляции:
Атрибут WebPartStorage недопустим для этого типа объявления.Это допустимо только для объявлений «свойство, индексатор».
И
Атрибут «FriendlyName» недопустим для этого типа объявления.Это допустимо только для объявлений «свойство, индексатор».
Я изменил свой код из статьи 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;
}
}
Решение
Кажется, вы прикрепили атрибут к полю;атрибуты всегда соответствуют следующий вещь (в данном случае поле).Вам следует изменить порядок, чтобы они придерживались свойства, а не поля.
КСТАТИ;защищенные поля редко являются хорошей идеей (они должны быть частными);но особенно если собственность является публичной:какой смысл?
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; }
}
Другие советы
Сообщение говорит вам, не так ли?Вы пытаетесь установить атрибут для поля, но он действителен только для индексаторов и свойств.
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;
}
}
Надеюсь, у вас есть using Microsoft.SharePoint.WebPartPages;
, а ты?