【发布时间】:2015-04-30 05:11:16
【问题描述】:
我正在寻找一种将附加信息传递给TypeConverter 的方法,以便在不创建自定义构造函数的情况下为转换提供一些上下文。
传递的额外信息将是包含我正在转换的属性的原始对象(在编译时称为接口)。它包含自己的属性,例如 Id,对于查找以转换相关信息很有用。
我查看了ITypeDescriptorContext 的文档,但我还没有找到一个明确的示例来说明如何实现该接口。我也不相信这是我需要的工具。
目前,在我调用的代码中:
// For each writeable property in my output class.
// If property has TypeConverterAttribute
var converted = converter.ConvertFrom(propertyFromOriginalObject)
propertyInfo.SetValue(output, converted, null);
我想做的是这样的。
// Original object is an interface at compile time.
var mayNewValue = converter.ConvertFrom(originalObject, propertyFromOriginalObject)
我希望能够使用其中一个重载来执行我需要的操作,以便任何自定义转换器都可以从 TypeConverter 继承,而不是从具有自定义构造函数的基类继承,因为这将使依赖注入的生活更轻松并使用 MVC 中的 DependencyResolver.Current.GetService(type) 来初始化我的转换器。
有什么想法吗?
【问题讨论】:
-
您能否解释一下您所说的“附加上下文”是什么意思?
-
别担心,我已经添加了一点来描述额外的上下文。
-
谁投了反对票,愿意解释一下吗?
-
我们都想要更多的背景信息 - 更多的是关于你想做什么而不是如何你想这样做。
-
标题和问题非常明确。
标签: c# type-conversion typeconverter typedescriptor icustomtypedescriptor