/// 生日
        /// </summary>
        [DataField("Brithday", FieldDescription = "生日", DefaultValue = new DateTime(1900, 1, 1))]
        public DateTime Brithday { get; set; }
如上面我的DefaultValue的数据类型为object ,现在我要赋一个日期的默认值,以上写法报

错误 1 属性实参必须是属性形参类型的常量表达式、typeof 表达式或数组创建表达式

那正确的写法是怎么写的,
谢谢

解决方案 »

  1.   

     new DateTime("1900-1-1")
    试着这样谢谢
      

  2.   

    DefaultValue(typeof(DateTime), "1900-1-1")
      

  3.   


    [Category("自定义属性"),DefaultValue(""),Description("要显示的数据源的字段")] 
    public string DataTextField
    { get; set; }
    通过反射赋值
    Browsable(true)][DefaultValue("1800")][Description("临时加个属性")][Category("自定义属性")]
        public int BeginYear
        {
           { get; set; }
        }
      

  4.   

    RE:DefaultValue(typeof(DateTime), "1900-1-1")
    -------------
    我这里的写法是
    [DataField("Brithday", FieldDescription = "生日", DefaultValue = ??
    是=号,不是(),上面的我这里写不了谢谢
      

  5.   

    你的 DataField 是怎么定义的
      

  6.   


        [AttributeUsage(AttributeTargets.Property)]
        public class BaseFieldAttribute : Attribute
        {
            // Fields
            private String _FieldDescription = "";
            private String columnName;
            private String tableName;
            private Object _DefaultValue;
            private Int32 _Len = 0;
            // Methods
            public BaseFieldAttribute(String columnName)
            {
                this.columnName = columnName;
            }
      

  7.   


        [AttributeUsage(AttributeTargets.Property)]
        public class BaseFieldAttribute : Attribute
        {
            // Fields
            private String _FieldDescription = "";
            private String columnName;
            private String tableName;
            private Object _DefaultValue;
            private Int32 _Len = 0;
            // Methods
            public BaseFieldAttribute(String columnName)
            {
                this.columnName = columnName;
            }        // Properties
            /// <summary>
            /// 字段名称
            /// </summary>
            public String ColumnName
            {
                get
                {
                    return this.columnName;
                }
                set
                {
                    this.columnName = value;
                }
            }        /// <summary>
            /// 字段描述
            /// </summary>
            public String FieldDescription
            {
                get
                {
                    return this._FieldDescription;
                }
                set
                {
                    this._FieldDescription = value;
                }
            }        /// <summary>
            /// 表名称
            /// </summary>
            public String TableName
            {
                get
                {
                    return this.tableName;
                }
                set
                {
                    this.tableName = value;
                }
            }        /// <summary>
            /// 添加字段默认值
            /// </summary>
            public Object DefaultValue
            {
                get
                {
                    return this._DefaultValue;
                }
                set
                {
                    this._DefaultValue = value;
                }
            }        /// <summary>
            /// 数据类型的最大长度
            /// </summary>
            public Int32 Len
            {
                get
                {
                    return this._Len;
                }
                set
                {
                    this._Len = value;
                }
            }
        }
      

  8.   

    An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type----------------------------------------------------------[DataField("Brithday", FieldDescription = "生日", DefaultValue = "1900-01-01")]只能是这种写法new DateTime(1900, 1, 1)是创建语句,不是 constant expression (属性形参类型的常量表达式)