如何解决几个函数的通用替换
| 我正在解析大量的xml内容,并填充一个DTO以提交给合作伙伴端点。 xml内容存储在我定期读取并发送的文本文件中。无论如何,我现在发现自己喜欢Funcs,就像这样:Func<string,int> ConvertInt= (p) => String.IsNullOrEmpty(p) ? 0 : Convert.ToInt32(p);
我检查我正在读取的元素是否不包含值,并且是否不发送默认值,即在整数情况下为0。我对于double和DateTime?有相似的值是无论如何有转换它,所以我可以说一个扩展方法可以处理所有类型,即int,double和DateTimes?同样,我执行此转换的原因是,让我们说DTO期望但不是必需的某个整数值,我不想尝试将空字符串强制转换为它,依此类推。 。如果没有Date值,我只想返回一个空值,因为DTO接受可为空的日期时间,因此我编写了函数,并希望进行合并。
解决方法
您应该看看TypeConverter类:http://msdn.microsoft.com/zh-cn/library/system.componentmodel.typeconverter.aspx
protected X Convert<X>(string value)
{
X val = default(X);
var tc = TypeDescriptor.GetConverter(typeof(X));
if (!string.IsNullOrEmpty(value) && tc.CanConvertFrom(typeof(string)))
{
val = (X)tc.ConvertFromString(value);
}
return val;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。