#region 检验参数合法性,数值类型不小于0,引用类型不能为null,否则抛出异常
///
/// 检验参数合法性,数值类型不小于0,引用类型不能为null,否则抛出异常
///
/// 待检参数
/// 待检参数名称
/// 数值类型是否可以为0
public static bool CheckArgument(object arg, string argName, bool canZero = false)
{
ILog log = LogManager.GetLogger(String.Format("CheckArgument_{0}", argName));
try
{
if (arg == null)
{
ArgumentNullException argumentNullException = new ArgumentNullException(argName);
throw new Exception(String.Format("参数{0}为空,引发异常", argName), argumentNullException);
}
Type t = arg.GetType();
if (t.IsValueType && t.IsNumeric())
{
bool flag = !canZero ? arg.CastTo(0.0) <= 0.0 : arg.CastTo(0.0) < 0.0;
if (flag)
{
ArgumentOutOfRangeException argumentOutOfRangeException = new ArgumentOutOfRangeException(argName);
throw new Exception(String.Format("参数{0}不在有效范围内,引发异常", argName), argumentOutOfRangeException);
}
}
if (t == typeof(Guid) && (Guid)arg == Guid.Empty)
{
ArgumentNullException argumentNullException1 = new ArgumentNullException(argName);
throw new Exception(String.Format("参数{0}为空引发GUID异常", argName), argumentNullException1);
}
return true;
}
catch (Exception exception)
{
log.Error("检验参数合法性", exception);
}
return false;
}
#endregion