首页 > 解决方案 > CustomAttribute:如何设置 DateTime.Now

问题描述

我正在寻找一种优雅的方法来将 DateTime.Now 的值设置为属性的值。

我有这个代码:

    [MyValue(DateTime.Now)]
    public DateTime? VertragDatum { get; set; }

但我收到语法错误并告诉我 Type DateTime 不是有效的属性参数类型。你知道如何做到这一点吗?

我的实现:

public class MyValueAttribute : Attribute
{
    public string MyValue { get; }

    public MyValueAttribute(DateTime myValue)
    {
        MyValue = myValue.ToString();
    }
}

标签: c#attributes

解决方案


DateTime 不是受支持的类型。

如此处引用有效类型是:

属性类的位置参数和命名参数的类型仅限于属性参数类型,它们是:

  • 以下类型之一:bool、byte、char、double、float、int、long、sbyte、short、string、uint、ulong、ushort。
  • 类型对象。
  • 类型 System.Type。
  • 枚举类型,前提是它具有公共可访问性,并且它嵌套的类型(如果有)也具有公共可访问性(属性规范)。
  • 上述类型的一维数组。
  • 不具有这些类型之一的构造函数参数或公共字段不能用作属性规范中的位置参数或命名参数。

推荐阅读