using Newtonsoft.Json.Serialization; using System; using System.Reflection; namespace IRaCIS.Core.API { public class NullToEmptyStringValueProvider : IValueProvider { PropertyInfo _MemberInfo; public NullToEmptyStringValueProvider(PropertyInfo memberInfo) { _MemberInfo = memberInfo; } public object GetValue(object target) { object result = _MemberInfo.GetValue(target); if (_MemberInfo.PropertyType == typeof(string) && result == null) result = ""; else if (_MemberInfo.PropertyType == typeof(String[]) && result == null) result = new string[] { }; //else if (_MemberInfo.PropertyType == typeof(Nullable) && result == null) result = 0; else if (_MemberInfo.PropertyType == typeof(Nullable) && result == null) result = 0.00M; return result; } public void SetValue(object target, object value) { if (_MemberInfo.PropertyType == typeof(string)) { //去掉前后空格 _MemberInfo.SetValue(target, value == null ? string.Empty : value.ToString() == string.Empty ? value : value/*.ToString().Trim()*/); } else { _MemberInfo.SetValue(target, value); } } } }