示例#1
0
        public object Resolve(Type type, object argumentsAsAnonymousType)
        {
            var resolvedObject = argumentsAsAnonymousType != null
                ? _iocResolver.Resolve(type, argumentsAsAnonymousType)
                : _iocResolver.Resolve(type);

            _resolvedObjects.Add(resolvedObject);
            return(resolvedObject);
        }
示例#2
0
        public TDbContext Resolve <TDbContext>(string connectionString)
            where TDbContext : DbContext
        {
            var dbContextType = GetConcreteType <TDbContext>();

            return((TDbContext)_iocResolver.Resolve(dbContextType, new
            {
                nameOrConnectionString = connectionString
            }));
        }
        /// <summary>
        /// 查询IController依赖对象
        /// </summary>
        /// <param name="requestContext">Request context</param>
        /// <param name="controllerType">Controller type</param>
        /// <returns></returns>
        protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
        {
            if (controllerType == null)
            {
                return(base.GetControllerInstance(requestContext, controllerType));
            }

            return(_iocManager.Resolve <IController>(controllerType));
        }
示例#4
0
        public IUnitOfWork Begin(UnitOfWorkOptions options)
        {
            options.FillDefaultsForNonProvidedOptions(_defaultOptions);
            var uow = _iocResolver.Resolve <IUnitOfWork>();

            uow.Begin(options);

            _unitOfWorkProvider.Current = uow;
            return(uow);
        }
示例#5
0
        static void Main(string[] args)
        {
            IIocConfig config = new IocConfig();

            config.AddConfig <ITest, Test>();
            IIocResolve resolve = IocManager.Resolve(config);
            ITest       test    = resolve.Resolve <ITest>();

            test.Name = "hy";
            test.Do();
        }
示例#6
0
        /// <summary>
        ///     Begin
        /// </summary>
        /// <returns></returns>
        public IUnitOfWorkCompleteHandle Begin()
        {
            var outerUow = _currentUnitOfWorkProvider.Current;

            if (outerUow != null)
            {
                return(new InnerUnitOfWorkCompleteHandle());
            }
            var uow = _iocResolve.Resolve <IUnitOfWork>();

            uow.Begin();
            _currentUnitOfWorkProvider.Current = uow;
            return(uow);
        }
        private static string GetNameOrConnectionStringOrNull(IIocResolve iocResolver)
        {
            if (iocResolver.IsRegistered <IEddoStartupConfiguration>())
            {
                var defaultConnectionString = iocResolver.Resolve <IEddoStartupConfiguration>().DefaultNameOrConnectionString;
                if (!string.IsNullOrWhiteSpace(defaultConnectionString))
                {
                    return(defaultConnectionString);
                }
            }

            if (ConfigurationManager.ConnectionStrings.Count == 1)
            {
                return(ConfigurationManager.ConnectionStrings[0].Name);
            }

            if (ConfigurationManager.ConnectionStrings["Default"] != null)
            {
                return("Default");
            }

            return(null);
        }
示例#8
0
 public EventBusInstaller(IIocResolve iocResolver)
 {
     _iocResolver           = iocResolver;
     _eventBusConfiguration = iocResolver.Resolve <IEventBusConfiguration>();
 }
示例#9
0
 /// <summary>
 /// Gets an <see cref="DisposableDependencyObjectWrapper{T}"/> object that wraps resolved object to be Disposable.
 /// </summary>
 /// <param name="iocResolver">IIocResolver object</param>
 /// <param name="type">Type of the object to resolve. This type must be convertible to <see cref="IDisposable"/>.</param>
 /// <param name="argumentsAsAnonymousType">Constructor arguments</param>
 /// <returns>The instance object wrapped by <see cref="DisposableDependencyObjectWrapper{T}"/></returns>
 public static IDisposableDependencyObjectWrapper ResolveAsDisposable(this IIocResolve iocResolver, Type type, object argumentsAsAnonymousType)
 {
     return(new DisposableDependencyObjectWrapper(iocResolver, iocResolver.Resolve(type, argumentsAsAnonymousType)));
 }
示例#10
0
 /// <summary>
 /// Gets an <see cref="DisposableDependencyObjectWrapper{T}"/> object that wraps resolved object to be Disposable.
 /// </summary>
 /// <typeparam name="T">Type of the object to get</typeparam>
 /// <param name="iocResolver">IIocResolver object</param>
 /// <param name="argumentsAsAnonymousType">Constructor arguments</param>
 /// <returns>The instance object wrapped by <see cref="DisposableDependencyObjectWrapper{T}"/></returns>
 public static IDisposableDependencyObjectWrapper <T> ResolveAsDisposable <T>(this IIocResolve iocResolver, object argumentsAsAnonymousType)
 {
     return(new DisposableDependencyObjectWrapper <T>(iocResolver, iocResolver.Resolve <T>(argumentsAsAnonymousType)));
 }
示例#11
0
 /// <summary>
 /// Gets an <see cref="DisposableDependencyObjectWrapper{T}"/> object that wraps resolved object to be Disposable.
 /// </summary>
 /// <param name="iocResolver">IIocResolver object</param>
 /// <param name="type">Type of the object to resolve. This type must be convertible to <see cref="IDisposable"/>.</param>
 /// <returns>The instance object wrapped by <see cref="DisposableDependencyObjectWrapper{T}"/></returns>
 public static IDisposableDependencyObjectWrapper ResolveAsDisposable(this IIocResolve iocResolver, Type type)
 {
     return(new DisposableDependencyObjectWrapper(iocResolver, iocResolver.Resolve(type)));
 }
示例#12
0
 /// <summary>
 /// Gets an <see cref="DisposableDependencyObjectWrapper{T}"/> object that wraps resolved object to be Disposable.
 /// </summary>
 /// <typeparam name="T">Type of the object to get</typeparam>
 /// <param name="iocResolver">IIocResolver object</param>
 /// <returns>The instance object wrapped by <see cref="DisposableDependencyObjectWrapper{T}"/></returns>
 public static IDisposableDependencyObjectWrapper <T> ResolveAsDisposable <T>(this IIocResolve iocResolver)
 {
     return(new DisposableDependencyObjectWrapper <T>(iocResolver, iocResolver.Resolve <T>()));
 }