/// <summary> /// 得到某个数据类型的缺省值 /// </summary> /// <param name="type">类型</param> /// <returns>该类型的缺省值</returns> /// <remarks>如果该类型为引用类型,则返回null,否则返回值类型的缺省值。如Int32返回0,DateTime返回DateTime.MinValue</remarks> public static object GetTypeDefaultValue(System.Type type) { ExceptionHelper.FalseThrow <ArgumentNullException>(type != null, "type"); object result = null; if (type.IsValueType) { // if (TypeDefaultValueCacheQueue.Instance.TryGetValue(type, out result) == false) // { result = TypeCreator.CreateInstance(type); // TypeDefaultValueCacheQueue.Instance.Add(type, result); // } } else { result = null; } return(result); }
/// <summary> /// 根据全类型名称动态的创建指定类型的实例。 /// </summary> /// <param name="typeName">类型名称</param> /// <param name="constructorParams">创建实例的参数</param> /// <returns>指定类型的实例对象</returns> /// <remarks> /// 根据全类型名称动态的创建指定类型的实例,该创建实例过程用到了反射机制。 /// </remarks> protected object CreateInstance(string typeName, params object[] constructorParams) { return(TypeCreator.CreateInstance(typeName, constructorParams)); }