Esempio n. 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ServiceLocator"/> class.
        /// </summary>
        /// <param name="container">The container.</param>
        internal ServiceLocator(IServiceLocatorContainer container)
        {
            ArgumentChecker.NotNull(container, () => container);

            // Register self so that IServiceLocator can be resolved.
            container.RegisterSingleton <IServiceLocator, ServiceLocator>(this);

            _container = container;
        }
Esempio n. 2
0
        /// <summary>
        /// Configures the specified container.
        /// </summary>
        /// <param name="container">The container.</param>
        public virtual void Configure(IServiceLocatorContainer container)
        {
            container.RegisterSingleton <ISetupManager, SetupManager>();
            container.RegisterSingleton <IInvocationTracker, InvocationTracker>();

            container.RegisterSingleton <Interceptor, Interceptor>();
            container.RegisterSingleton <EventInterceptor, EventInterceptor>();

            container.RegisterSingleton <ISetupMatcher, SetupMatcher>();
            container.RegisterSingleton <ITargetMatcher, TargetMatcher>();
            container.RegisterSingleton <IArgumentMatcher, ArgumentMatcher>();
            container.RegisterSingleton <IItIsMatcher, ItIsMatcher>();

            container.RegisterSingleton <IMethodDisassembler, MethodDisassembler>();
            container.RegisterSingleton <IAssemblyResolver, CecilAssemblyResolver>();

            container.RegisterSingleton <IExpressionDecompiler <Expression>, ExpressionDecompiler <Expression> >();
            container.RegisterSingleton <IExpressionDecompiler <Action>, ExpressionDecompiler <Action> >();
            container.RegisterSingleton <IExpressionCompiler, ExpressionCompiler>();
            container.RegisterSingleton <IExpressionHelper, ExpressionHelper>();
            container.RegisterSingleton <IInstructionsCompiler, DynamicMethodCompiler>();
            container.RegisterSingleton <IOpCodeMapper, OpCodeMapper>();
            container.RegisterSingleton <IMethodRewriter, MethodRewriter>();
            container.RegisterSingleton <IInstructionHelper, InstructionHelper>();
            container.RegisterSingleton <IParameterDeducer, ParameterDeducer>();
            container.RegisterSingleton <IArgumentGenerator, ArgumentGenerator>();

            container.RegisterSingleton <IAssemblyPostProcessor, AssemblyAttributesFilter>();
            container.RegisterSingleton <IAssemblyPostProcessor, ModuleMvidPostProcessor>();

            container.RegisterSingleton <ITypeResolver, TypeResolver>();
            container.RegisterSingleton <IModuleResolver, ModuleResolver>();
            container.RegisterSingleton <IFieldResolver, FieldResolver>();
            container.RegisterSingleton <IMethodResolver, MethodResolver>();

            container.RegisterSingleton <SetupExtractor, SetupExtractor>();
            container.RegisterSingleton <ISetupExtractor, SetupExtractor>();
            container.RegisterSingleton <IEventTargetExtractor, EventTargetExtractor>();
            container.RegisterSingleton <IEventAccessorExtractor, EventAccessorExtractor>();

            container.RegisterSingleton <IDependencyGraphBuilder, DependencyGraphBuilder>();

            container.RegisterSingleton <IModuleFilterFactory, ModuleFilterFactory>();

            container.Register <IEqualityComparer <ModuleReference>, ModuleReferenceComparer>();

            container.Register <ISmocksContext, SmocksContext>();

            container.Register <IServiceCreator, ServiceCreator>();
        }
        /// <summary>
        /// Configures the specified container.
        /// </summary>
        /// <param name="container">The container.</param>
        public virtual void Configure(IServiceLocatorContainer container)
        {
            container.RegisterSingleton<ISetupManager, SetupManager>();
            container.RegisterSingleton<IInvocationTracker, InvocationTracker>();

            container.RegisterSingleton<Interceptor, Interceptor>();
            container.RegisterSingleton<EventInterceptor, EventInterceptor>();

            container.RegisterSingleton<ISetupMatcher, SetupMatcher>();
            container.RegisterSingleton<ITargetMatcher, TargetMatcher>();
            container.RegisterSingleton<IArgumentMatcher, ArgumentMatcher>();
            container.RegisterSingleton<IItIsMatcher, ItIsMatcher>();

            container.RegisterSingleton<IMethodDisassembler, MethodDisassembler>();
            container.RegisterSingleton<IExpressionDecompiler<Expression>, ExpressionDecompiler<Expression>>();
            container.RegisterSingleton<IExpressionDecompiler<Action>, ExpressionDecompiler<Action>>();
            container.RegisterSingleton<IExpressionCompiler, ExpressionCompiler>();
            container.RegisterSingleton<IExpressionHelper, ExpressionHelper>();
            container.RegisterSingleton<IInstructionsCompiler, DynamicMethodCompiler>();
            container.RegisterSingleton<IOpCodeMapper, OpCodeMapper>();
            container.RegisterSingleton<IMethodRewriter, MethodRewriter>();
            container.RegisterSingleton<IInstructionHelper, InstructionHelper>();
            container.RegisterSingleton<IParameterDeducer, ParameterDeducer>();
            container.RegisterSingleton<IArgumentGenerator, ArgumentGenerator>();

            container.RegisterSingleton<ITypeResolver, TypeResolver>();
            container.RegisterSingleton<IModuleResolver, ModuleResolver>();
            container.RegisterSingleton<IFieldResolver, FieldResolver>();
            container.RegisterSingleton<IMethodResolver, MethodResolver>();

            container.RegisterSingleton<SetupExtractor, SetupExtractor>();
            container.RegisterSingleton<ISetupExtractor, SetupExtractor>();
            container.RegisterSingleton<IEventTargetExtractor, EventTargetExtractor>();
            container.RegisterSingleton<IEventAccessorExtractor, EventAccessorExtractor>();

            container.RegisterSingleton<IDependencyGraphBuilder, DependencyGraphBuilder>();

            container.RegisterSingleton<IModuleFilterFactory, ModuleFilterFactory>();

            container.Register<IEqualityComparer<ModuleReference>, ModuleReferenceComparer>();

            container.Register<ISmocksContext, SmocksContext>();

            container.Register<IServiceCreator, ServiceCreator>();
        }