using System; using System.Reflection; using Newtonsoft.Json.Serialization; namespace IRaCIS.Core.API { //public class NullToEmptyStringValueProvider : IValueProvider //{ // private readonly JsonProperty _memberInfo; // /// // /// 构造函数 // /// // /// // public NullToEmptyStringValueProvider(JsonProperty memberInfo) // { // _memberInfo = memberInfo; // } // /// // /// 获取Value // /// // public object GetValue(object target) // { // var result = _memberInfo.DefaultValue; // if (_memberInfo.PropertyType == typeof(string) && result == null) // { // result = string.Empty; // } // else if (_memberInfo.PropertyType == typeof(double?) && result == null) // { // result = 0; // } // else if (_memberInfo.PropertyType == typeof(double?) && result == null) // { // result = 0; // } // return result; // } // /// // /// 设置Value // /// // public void SetValue(object target, object value) // { // //_memberInfo.SetValue(target, value); // _memberInfo.DefaultValue = value; // } //} public class NullToEmptyStringValueProvider : Newtonsoft.Json.Serialization.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) { _MemberInfo.SetValue(target, value); } } }