题
该DateTimeConverter类提供之间的转换时间和串。我也谨支持之间的转换时间和双重。
根据MSDN我可以延长DateTimeConverter类做这种-看看 MSDN DateTimeConverter
我已经创建了一个类继承的自DateTimeConverter和提供适当的替代CanConvertTo,该等。
我怎么确保该框架使用我的时间转换器(DateTimeConverterEx),而不是一个设在BCL(DateTimeConverter)当代码下面是?
DateTime dt = DateTime.Now;
// This line returns a DateTimeConverter which I don't want.
// Would like to get a DateTimeConverterEx.
TypeConverter tc = TypeDescriptor.GetConverter(dt);
double dbl = (double)tc.ConvertTo(dt, typeof(double));
谢谢。
解决方案
您需要分配的转换器。上的特性逐属性的基础上,可以使用:
[TypeConverter(typeof(DateTimeConverterEx))]
public DateTime Foo {get {...} set {...}}
然后这将为形式的使用工作:
var prop = TypeDescriptor.GetProperties(obj)["Foo"];
var converter = prop.Converter;
// as before, using "converter"
这将对于最常见的绑定方案工作。
(的修改)
要设置转换器,用于的任何强> DateTime
:
TypeDescriptor.AddAttributes(typeof(DateTime),
new TypeConverterAttribute(typeof(DateTimeConverterEx)));
现在您的示例代码应该工作。
不隶属于 StackOverflow