Domanda

Questa è la dichiarazione di proprietà in questione:

 [RangeValidator(1,RangeBoundaryType.Inclusive,255,RangeBoundaryType.Inclusive,MessageTemplate = "StartFlexibility is out of range")]
    public byte StartFlexibility { get; set; }

Quando il metodo validate viene chiamato, un FormatException è gettato a dirmi che il tipo di valore deve essere Int32.

Come risolvere, per favore?

È stato utile?

Soluzione

bene ... la correzione rapida ovvio sarà modificare il tipo di short o int,

ma un'altra osservazione che voglio fare, è con la gamma. Si sta dicendo il RangeValidator di prendere una gamma compresa tra 1 e 256, ma si può solo assegnare un valore di byte fino a 255, forse questo è il motivo compilatore di gridare.

Il RangeValidator è anche infering il tipo di Range dai parametri, quindi, provare a lanciare

[RangeValidator((byte) 1, ...

Altri suggerimenti

Come dice Jhonny, gettato al byte ... ma più come questo

[RangeValidator(typeof(Byte), "1", RangeBoundaryType.Inclusive, "255", RangeBoundaryType.Inclusive, MessageTemplate = "Some message")]

L'altra opzione sarebbe quella di chiamare il validatore gamma in un messaggio SelfValidation e gettato lì.

Non ho mai usato il RangeValidator classe / attributo, ma è un problema che si dispone di 256 come un limite superiore quando un byte può ottenere solo a 255?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top