Attributo non valido sul tipo di dichiarazione
-
06-07-2019 - |
Domanda
Ho il seguente codice ma sto ricevendo i seguenti errori di compilazione:
L'attributo 'WebPartStorage' non è valido su questo tipo di dichiarazione. È valido solo per le dichiarazioni "proprietà, indicizzatore".
E
L'attributo 'FriendlyName' non è valido su questo tipo di dichiarazione. È valido solo per le dichiarazioni "proprietà, indicizzatore".
Ho modificato il mio codice dall'articolo MSDN: http://msdn.microsoft.com/en-us/library/dd584174(office.11).aspx . Qualcuno ha idea di cosa sto facendo di sbagliato che sta causando questo errore?
[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;
}
}
Soluzione
Sembra che tu abbia allegato l'attributo al campo; gli attributi aderiscono sempre alla cosa next (in questo caso, il campo). È necessario riordinare in modo che aderiscano alla proprietà anziché al campo.
A proposito; i campi protetti sono raramente una buona idea (dovrebbero essere privati); ma soprattutto se la proprietà è pubblica: qual è il 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; }
}
Altri suggerimenti
Il messaggio ti dice, vero? Stai tentando di impostare l'attributo su un campo, ma è valido solo su indicizzatori e proprietà.
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;
}
}
Spero che tu abbia usando Microsoft.SharePoint.WebPartPages;
, vero?