/// <summary> /// Cast <see cref="object"/> to given type. /// </summary> /// <param name="obj"></param> /// <param name="targetType"></param> /// <returns></returns> public static object CastTo(this object obj, Type targetType) { CastTypeHelper.Guard(targetType, nameof(targetType)); return(obj is null ? default : XConv.To(obj, obj.GetType(), targetType, TypeDeterminer.GetDefaultValue(targetType))); }
/// <summary> /// Cast <see cref="object"/> to given type. /// </summary> /// <param name="obj"></param> /// <param name="targetType"></param> /// <param name="defaultVal"></param> /// <returns></returns> public static object CastTo(this object obj, Type targetType, object defaultVal) { CastTypeHelper.Guard(targetType, nameof(targetType)); return(obj is null ? defaultVal : XConv.To(obj, obj.GetType(), targetType, defaultVal)); }
/// <summary> /// Cast to /// </summary> /// <param name="str"></param> /// <param name="contextAct"></param> /// <param name="defaultVal"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static T CastTo <T>(this string str, Action <CastingContext> contextAct, T defaultVal = default) { T result = default; var context = new CastingContext(); contextAct?.Invoke(context); return(str.Is <T>(context, v => result = v) ? result : XConv.To(str, defaultVal, context)); }
/// <summary> /// Cast to /// </summary> /// <param name="str"></param> /// <param name="targetType"></param> /// <param name="defaultVal"></param> /// <returns></returns> public static object CastTo(this string str, Type targetType, object defaultVal = default) { CastTypeHelper.Guard(targetType, nameof(targetType)); var result = defaultVal; return(str.Is(targetType, v => result = v) ? result : XConv.To(str, TypeClass.StringClazz, targetType, defaultVal)); }
/// <summary> /// Cast to /// </summary> /// <param name="str"></param> /// <param name="targetType"></param> /// <param name="defaultVal"></param> /// <param name="contextAct"></param> /// <returns></returns> public static object CastTo(this string str, Type targetType, Action <CastingContext> contextAct, object defaultVal = default) { CastTypeHelper.Guard(targetType, nameof(targetType)); var result = defaultVal; var context = new CastingContext(); contextAct?.Invoke(context); return(str.Is(targetType, v => result = v) ? result : XConv.To(str, TypeClass.StringClazz, targetType, defaultVal, context)); }
/// <summary> /// Convert from sourceType to targetType /// </summary> /// <param name="sourceType"></param> /// <param name="targetType"></param> /// <param name="source"></param> /// <param name="defaultVal"></param> /// <param name="context"></param> /// <returns></returns> public static object To(Type sourceType, Type targetType, object source, object defaultVal, CastingContext context = default) => XConv.To(source, sourceType, targetType, defaultVal, context);
/// <summary> /// Cast to /// </summary> /// <param name="str"></param> /// <param name="context"></param> /// <param name="defaultVal"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static T CastTo <T>(this string str, CastingContext context, T defaultVal = default) where T : class => XConv.To(str, defaultVal, context);
/// <summary> /// Cast to /// </summary> /// <param name="str"></param> /// <param name="defaultVal"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static T CastTo <T>(this string str, T defaultVal = default) where T : class => XConv.To(str, defaultVal);
public static TTo To <TTo>(object source, CastingContext context = default) { return(XConv.To(source, source?.GetType(), typeof(TTo), context: context).As <TTo>()); }
/// <summary> /// Cast to /// </summary> /// <param name="fromObj"></param> /// <param name="defaultVal"></param> /// <typeparam name="TFrom"></typeparam> /// <typeparam name="TTo"></typeparam> /// <returns></returns> public static TTo CastTo <TFrom, TTo>(TFrom fromObj, TTo defaultVal = default) => XConv.To(fromObj, defaultVal);
/// <summary> /// Cast <see cref="object"/> to given type. /// </summary> /// <param name="obj"></param> /// <param name="sourceType"></param> /// <param name="targetType"></param> /// <param name="defaultVal"></param> /// <returns></returns> public static object CastTo(this object obj, Type sourceType, Type targetType, object defaultVal) => XConv.To(obj, sourceType, targetType, defaultVal);
/// <summary> /// Cast <see cref="object"/> to given type. /// </summary> /// <param name="obj"></param> /// <param name="targetType"></param> /// <param name="defaultVal"></param> /// <returns></returns> public static object CastTo(this object obj, Type targetType, object defaultVal) => XConv.To(obj, obj.GetType(), targetType, defaultVal);
/// <summary> /// Convert from TFrom to TTo /// </summary> /// <param name="source"></param> /// <param name="defaultVal"></param> /// <param name="context"></param> /// <typeparam name="TFrom"></typeparam> /// <typeparam name="TTo"></typeparam> /// <returns></returns> public static TTo To <TFrom, TTo>(TFrom source, TTo defaultVal, CastingContext context = default) => XConv.To(source, defaultVal, context);
/// <summary> /// Convert from sourceType to targetType /// </summary> /// <param name="source"></param> /// <param name="defaultVal"></param> /// <param name="context"></param> /// <typeparam name="TTo"></typeparam> /// <returns></returns> public static TTo To <TTo>(object source, TTo defaultVal, CastingContext context = default) => XConv.To(source, source?.GetType(), typeof(TTo), defaultVal, context).As <TTo>();
/// <summary> /// Cast to /// </summary> /// <param name="str"></param> /// <param name="context"></param> /// <param name="defaultVal"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static T CastTo <T>(this string str, CastingContext context, T defaultVal = default) { T result = default; return(str.Is <T>(context, v => result = v) ? result : XConv.To(str, defaultVal, context)); }
/// <summary> /// Cast to /// </summary> /// <param name="str"></param> /// <param name="defaultVal"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static T CastTo <T>(this string str, T defaultVal = default) { T result = default; return(str.Is <T>(v => result = v) ? result : XConv.To(str, defaultVal)); }
/// <summary> /// Convert object to given type. /// </summary> /// <param name="obj"></param> /// <param name="defaultVal"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static T CastTo <T>(this object obj, T defaultVal) { return(obj is null ? defaultVal : XConv.To(obj, obj.GetType(), typeof(T), defaultVal).As <T>()); }
/// <summary> /// Convert from TFrom to TTo /// </summary> /// <param name="source"></param> /// <param name="context"></param> /// <typeparam name="TFrom"></typeparam> /// <typeparam name="TTo"></typeparam> /// <returns></returns> public static TTo To <TFrom, TTo>(TFrom source, CastingContext context = default) => XConv.To <TFrom, TTo>(source, context: context);
/// <summary> /// Cast to /// </summary> /// <param name="fromObj"></param> /// <param name="defaultVal"></param> /// <typeparam name="TFrom"></typeparam> /// <typeparam name="TTo"></typeparam> /// <returns></returns> public static TTo CastTo <TFrom, TTo>(TFrom fromObj, TTo defaultVal = default) { return(XConv.To(fromObj, defaultVal)); }
/// <summary> /// Cast <see cref="object"/> to given type. /// </summary> /// <param name="obj"></param> /// <param name="targetType"></param> /// <returns></returns> public static object CastTo(this object obj, Type targetType) => XConv.To(obj, obj.GetType(), targetType, TypeHelper.GetDefaultValue(targetType));
/// <summary> /// Cast <see cref="object"/> to given type. /// </summary> /// <param name="obj"></param> /// <param name="sourceType"></param> /// <param name="targetType"></param> /// <param name="defaultVal"></param> /// <returns></returns> public static object CastTo(this object obj, Type sourceType, Type targetType, object defaultVal) { CastTypeHelper.Guard(sourceType, nameof(sourceType)); CastTypeHelper.Guard(targetType, nameof(targetType)); return(XConv.To(obj, sourceType, targetType, defaultVal)); }
/// <summary> /// Cast <see cref="object"/> to given type. /// </summary> /// <param name="obj"></param> /// <param name="sourceType"></param> /// <param name="targetType"></param> /// <returns></returns> public static object CastTo(this object obj, Type sourceType, Type targetType) => XConv.To(obj, sourceType, targetType);
/// <summary> /// Convert object to given type. /// </summary> /// <param name="obj"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static T CastTo <T>(this object obj) => XConv.To(obj, obj?.GetType() ?? typeof(object), typeof(T)).As <T>();
/// <summary> /// Cast to /// </summary> /// <param name="str"></param> /// <param name="targetType"></param> /// <param name="defaultVal"></param> /// <param name="context"></param> /// <returns></returns> public static object CastTo(this string str, Type targetType, CastingContext context, object defaultVal = default) => XConv.To(str, TypeClass.StringClass, targetType, defaultVal, context);
/// <summary> /// Convert object to given type. /// </summary> /// <param name="obj"></param> /// <param name="defaultVal"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static T CastTo <T>(this object obj, T defaultVal) => XConv.To(obj, obj?.GetType() ?? typeof(object), typeof(T), defaultVal).As <T>();
/// <summary> /// Cast to /// </summary> /// <param name="fromObj"></param> /// <param name="context"></param> /// <param name="defaultVal"></param> /// <typeparam name="TFrom"></typeparam> /// <typeparam name="TTo"></typeparam> /// <returns></returns> public static TTo CastTo <TFrom, TTo>(TFrom fromObj, CastingContext context, TTo defaultVal = default) => XConv.To(fromObj, defaultVal, context);
/// <summary> /// Convert from sourceType to targetType /// </summary> /// <param name="sourceType"></param> /// <param name="targetType"></param> /// <param name="source"></param> /// <param name="context"></param> /// <returns></returns> public static object To(Type sourceType, Type targetType, object source, CastingContext context = default) { return(XConv.To(source, sourceType, targetType, context: context)); }