2010-07-24 27 views
1
public enum ProductQuantityType { 
    Weight = 1, 
    Volume = 2, 
    Custom = 0 
} 

這種失敗如何在DefaultValue數據註釋中使用非靜態枚舉值?

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

錯誤:對象引用需要非靜態字段,方法或屬性

+0

你是什麼意思的「非靜態枚舉」?什麼是ProductQuantityType和權重成員是什麼樣的? – 2010-07-24 22:27:54

回答

1

我的猜測,這可能是因爲你的QuantityType字段是object(引用類型),但是你的枚舉是一個值類型。您顯然應該製作該自動impl支柱intProductQuantityType

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

您知道當您實例化新的ProductMetadata權限時,DefaultValue不會設置此字段嗎?如果你希望它始終有一個初始值,你應該在構造函數中設置它。