Aras学习笔记 (32) 对于返回Item中日期类型字段带字母T的处理办法
Aras返回的日期字段都包含字母T,在给PropertyInfo自动赋值时可能会报错。
由于我会将Soap返回结果通过PropertyInfo[] propertyList = typeof(T).GetProperties()自动给实体赋值,所以需要处理后才能使用property.SetValue(),处理方法如下:
1、判断哪些Property是日期类型: 通常Aras会将日期类型Property以_date或_on结尾,所以建议自定义Property也遵照这个原则。
2、然后用string.Contains("_date")或string.Contains("_on")进行判断,然后替换T为空格。
private Nullable<DateTime> FormateDateString(string PropertyName, string PropertyValue) { Nullable<DateTime> FormatValue = null; if((PropertyName.ToLower().Contains("_date") || PropertyName.ToLower().Contains("_on")) && PropertyValue.ToUpper().Contains("T")) { FormatValue = DateTime.Parse(PropertyValue.Replace("T", " ")); } return FormatValue;
}
BTW,对于如何修改配置使Aras返回日期类型不带T,需要进一步研究,欢迎赐教。