/// <summary> /// 转换为 <see cref="System.Guid"/>,<see cref="System.Guid"/> 无法强制转换。 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="value"></param> /// <returns></returns> private static T GetGuidValue <T>(PropertyValue value) { if (value.Object != null) { return((T)(object)new Guid(value.Object.ToString())); } return(value.Cast <T>()); }
/// <summary> /// 将 <see cref="PropertyValue"/> 的值转换为 <typeparamref name="T"/> 类型。 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="value">一个 <see cref="PropertyValue"/> 对象。</param> /// <returns></returns> internal static T GetValue <T>(PropertyValue value) { if (value == null) { return(default(T)); } //如果是受支持的类型,强制转换,这样不会被装箱 if (IsSupportedType(typeof(T))) { if (typeof(T).GetNonNullableType() == typeof(Guid)) { return(GetGuidValue <T>(value)); } } return(value.Cast <T>()); }