【发布时间】:2010-12-01 13:39:00
【问题描述】:
我有一个带有 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 能否为我提供任何干净的方法来在后台获取字符串 -> 日期时间转换?
【问题讨论】:
标签: c# types type-conversion castle-activerecord implicit