Как использовать нестатические значения перечисления с аннотацией данных DefaultValue? - PullRequest
1 голос
/ 25 июля 2010
public enum ProductQuantityType {
    Weight = 1,
    Volume = 2,
    Custom = 0
}

Это не удалось

[MetadataType(typeof(ProductMetaData))]
public partial class Product {
    public class ProductMetaData {
        [DefaultValue(ProductQuantityType.Weight)]
        public object QuantityType { get; set; }
    }
}

Ошибка: ссылка на объект требуется для нестатического поля, метода или свойства

1 Ответ

1 голос
/ 25 июля 2010

Полагаю, возможно, это связано с тем, что ваше поле QuantityType имеет значение object (ссылочный тип), но ваше перечисление является типом значения. Очевидно, вы должны сделать эту авто-импл-проп либо int, либо ProductQuantityType.

    [DefaultValue(ProductQuantityType.Weight)]
    public ProductQuantityType QuantityType { get; set; }

Вам известно, что DefaultValue не собирается устанавливать это поле при создании нового права ProductMetadata? Если вы хотите, чтобы оно всегда имело начальное значение, вы должны установить его в конструкторе.

...