/// summary/// summary /// 类安全转换 /// /summary /// param namevalue/param /// param nametargetType/param /// returns/returns private object ConvertParameterValue(string value, Type targetType) { if (string.IsNullOrEmpty(value)) { // 处理空值如果是值类型返回默认值引用类型返回null return targetType.IsValueType ? Activator.CreateInstance(targetType) : null; } // 处理可空类型 Type underlyingType Nullable.GetUnderlyingType(targetType) ?? targetType; try { // 基础类型转换 if (underlyingType typeof(int)) return int.Parse(value); if (underlyingType typeof(double)) return double.Parse(value); if (underlyingType typeof(bool)) return bool.Parse(value); if (underlyingType typeof(string)) return value; // 处理其他类型可根据需要扩展 if (underlyingType.IsEnum) return Enum.Parse(underlyingType, value); // 默认使用Convert.ChangeType return Convert.ChangeType(value, underlyingType); } catch (Exception ex) { // 记录转换错误返回默认值 Console.WriteLine($参数转换错误: {ex.Message}); return targetType.IsValueType ? Activator.CreateInstance(targetType) : null; } }