我正在寻找一种在不创建自定义构造函数的情况下,向 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) 来初始化我的转换器。
有什么好的建议吗?