我有一个带有 DateTime 属性的 Castle ActiveRecord 类。我正在从文本文件中导入数据,并且希望能够执行以下操作:
string date_started = "09/25/2009";
MyClass myclass = new MyClass;
myclass.date_started = date_started;
在最后的分配中,在幕后,理想情况下会检查 的类型date_started
,如果是 DateTime,则执行分配,否则执行Convert.ToDateTime(date_started)
。
我不能覆盖访问器[*],并且隐式运算符仅在转换为包含类或从包含类转换时才起作用。我尝试使用隐式运算符转换扩展 DateTime,但发现它已被密封。现在我是一个非常不开心的动态程序员,卡在一个静态类型的世界里。
我当然可以“手动”进行检查,但我正在实例化许多具有许多属性的不同对象,并且希望能够循环它们(使用反射),而不必对特定属性进行特殊处理。我可以定义自己的自定义访问器,但这同样需要在赋值时进行特殊处理,因为它们需要像方法 ( setX(val)
) 而不是属性 ( X = val
) 那样使用。
C# (2.0) 或 Castle ActiveRecord 可以为我提供任何干净的方法来在后台获取 String -> DateTime 转换吗?