我需要转换多个不同的对象,但我想避免为每个对象编写一个转换器类。每个对象都继承自基类,我需要使用ID来获取描述(这在我的CacheManager调用中处理)。
对于每个类(我大约有30个),我编写了以下代码:
object IValueConverter.Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
Dictionary<int, string> codes = CacheManager.CodeLookup<CourtEventCode>();
int id = 0;
string result = string.Empty;
if (int.TryParse(value.ToString(), out id) && id > 0)
{
if (codes.ContainsKey(id))
{
result = codes[id];
}
else
{
result = "Unknown";
}
}
return result;
}
在上面的例子中,
CourtEventCode
代表这个类的转换器。有没有一种方法可以从 IValueConverter.Convert 的 targetType 输入中派生该类,而不必将该类复制粘贴两打次呢?谢谢,
Sonny