Modifier: Il semble que ce soit un problème de Visual Studio. Si je redémarre Visual Studio cela fonctionne jusqu'à ce que je reconstruis la solution.Comment ajouter des propriétés enum à un WebControl
Je reçois une exception « B» ne pouvait être sur la propriété 'Mon Mode » dans le concepteur en utilisant ce code:
public class MyControl : CompositeControl
{
public enum MyEnum{ A, B }
[DefaultValue(MyEnum.A)]
public MyEnum MyMode
{
get
{
object obj = ViewState["MyMode"];
return obj == null ? MyMode.A : (MyEnum)obj;
}
set
{
ViewState["MyMode"] = value;
}
}
}
Reproduire: Créer le contrôle dans un projet. Faites glisser le contrôle sur un formulaire Web dans un autre projet. Définissez MyMode = B dans la fenêtre des propriétés. Fermez le formulaire, rouvrez le concepteur.
Qu'est-ce que je fais mal? Ai-je besoin d'analyser manuellement la chaîne dans une énumération?
Édition: Code généré par le concepteur.
<cc1:MyControl ID="MyControl1" runat="server" MyMode="B" />
Edit: En fait, cette propriété échoue également:
public MyEnum MyMode
{
get
{
return MyEnum.A;
}
set{}
}
fait vous essayez simplement 'public MyEnum MyMode {get; set;}'? – Jason