Значение параметра свойства перечислимого типа
У меня есть перечисление, и это свойство, которое я хочу обнулить. Есть пара способов, которыми я пытался это сделать, но у меня ничего не получается. Я получаю
"Object of type 'System.Int32' cannot be converted to type 'System.Nullable`1[Data2.Models.MyObject+TypeFlag]'."
но разве он не должен разрешать обнуляемое перечисление, если я установлю его таким образом?Он разбивается на
prop.SetValue(item, val, null);
где prop-мое свойство nullable, item-весь объект, а val-значение enum (null, 1, 2 и т. д)
Что я уже пробовал:
public enum Types: int { Good = 1, Medium = 2, Critical = 3, } [Column("types")] [JsonProperty(PropertyName = "types")] public Types? TypeFlag { get; set; } //second try [Column("types")] [JsonProperty(PropertyName = "types")] public TypeFlag ? TypeFlag { get { if (this.TypeFlag == null) { this.TypeFlag = default (TypeFlag); } return this.TypeFlag; } set { this.TypeFlag = value; } }
Я также попытался изменить свою настройку значения следующим образом:
var enumType = default(T) == null && typeof(T).BaseType != null && "ValueType".Equals(typeof(T).BaseType.Name); var convertedValue = enumType ? Convert.ChangeType(val, prop.PropertyType) : val; prop.SetValue(item, convertedValue, null);
но это не помогло.
Richard Deeming
Это ArgumentException
не NullReferenceException
.
Я исправил название вашего вопроса для вас.