using System; using System.Reflection; using Newtonsoft.Json.Serialization; namespace IRaCIS.Core.SCP { 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); } } } }