该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)));

现在您的示例代码应该工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top