示例#1
0
        /// <summary>
        /// Create instance
        /// </summary>
        /// <param name="type"></param>
        /// <param name="ctorArgDescriptors"></param>
        /// <typeparam name="TInstance"></typeparam>
        /// <returns></returns>
        public static TInstance CreateInstance <TInstance>(Type type, IEnumerable <CtorArgDescriptor> ctorArgDescriptors)
        {
            if (ctorArgDescriptors is null)
            {
                return(Types.CreateInstance <TInstance>());
            }
            var descriptors = ctorArgDescriptors.ToList();
            var instance    = !descriptors.Any()
                ? Types.CreateInstance(type)
                : CreateInstanceCore(type, descriptors);

            return(instance is TInstance ret ? ret : default);
示例#2
0
        /// <summary>
        /// Create instance
        /// </summary>
        /// <param name="ctorArgDescriptors"></param>
        /// <typeparam name="TInstance"></typeparam>
        /// <returns></returns>
        public static TInstance CreateInstance <TInstance>(IEnumerable <CtorArgDescriptor> ctorArgDescriptors)
        {
            if (ctorArgDescriptors is null)
            {
                return(Types.CreateInstance <TInstance>());
            }
            var descriptors = ctorArgDescriptors.ToList();

            return(!descriptors.Any()
                ? Types.CreateInstance <TInstance>()
                : CreateInstanceCore <TInstance>(descriptors));
        }
 /// <summary>
 /// Create instance
 /// </summary>
 /// <typeparam name="TTypeInstance"></typeparam>
 /// <param name="type"></param>
 /// <param name="args"></param>
 /// <returns></returns>
 public static TTypeInstance CreateInstance <TTypeInstance>(this Type type, params object[] args)
 => Types.CreateInstance <TTypeInstance>(type, args);