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,需要进一步研究,欢迎赐教。

原文地址:https://www.cnblogs.com/61007257Steven/p/10227860.html