/// <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));
        }
예제 #6
0
 /// <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);
예제 #9
0
 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);
예제 #13
0
 /// <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);
예제 #14
0
 /// <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>());
 }
예제 #18
0
 /// <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);
예제 #27
0
 /// <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));
 }