76 lines
2.4 KiB
C#
76 lines
2.4 KiB
C#
using System;
|
|
using System.Reflection;
|
|
using Newtonsoft.Json.Serialization;
|
|
|
|
namespace IRaCIS.Core.API
|
|
{
|
|
//public class NullToEmptyStringValueProvider : IValueProvider
|
|
//{
|
|
// private readonly JsonProperty _memberInfo;
|
|
|
|
// /// <summary>
|
|
// /// 构造函数
|
|
// /// </summary>
|
|
// /// <param name="memberInfo"></param>
|
|
// public NullToEmptyStringValueProvider(JsonProperty memberInfo)
|
|
// {
|
|
// _memberInfo = memberInfo;
|
|
// }
|
|
|
|
// /// <summary>
|
|
// /// 获取Value
|
|
// /// </summary>
|
|
// 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;
|
|
// }
|
|
|
|
// /// <summary>
|
|
// /// 设置Value
|
|
// /// </summary>
|
|
// 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<Int32>) && result == null) result = 0;
|
|
else if (_MemberInfo.PropertyType == typeof(Nullable<Decimal>) && result == null) result = 0.00M;
|
|
|
|
return result;
|
|
}
|
|
public void SetValue(object target, object value)
|
|
{
|
|
_MemberInfo.SetValue(target, value);
|
|
}
|
|
}
|
|
|
|
}
|