示例#1
0
        /// <summary>
        /// Static constructor to setup dynamic implementation
        /// </summary>
        static GraceDynamicMethod()
        {
            DynamicImplementation = DefaultImplementation.Clone();

            DynamicImplementation.ExportSingleton <IDynamicMethodTargetCreator>(f => new DynamicMethodTargetCreator());
            DynamicImplementation.ExportSingleton <INewExpressionGenerator>(f => new NewExpressionGenerator());
            DynamicImplementation.ExportSingleton <IConstantExpressionCollector>(f => new ConstantExpressionCollector());
            DynamicImplementation.ExportSingleton <IConstantExpressionGenerator>(f => new ConstantExpressionGenerator());
            DynamicImplementation.ExportSingleton <IMemeberInitExpressionGenerator>(f => new MemeberInitExpressionGenerator());
            DynamicImplementation.ExportSingleton <IArrayInitExpressionGenerator>(f => new ArrayInitExpressionGenerator());
            DynamicImplementation.ExportSingleton <IParameterExpressionGenerator>(f => new ParameterExpressionGenerator());
            DynamicImplementation.ExportSingleton <ICallExpressionGenerator>(f => new CallExpressionGenerator());
            DynamicImplementation.ExportSingleton <IAssignExpressionGenerator>(f => new AssignExpressionGenerator());

            DynamicImplementation.ExportInstance <ILinqToDynamicMethodConverter>(f => new LinqToDynamicMethodConverter(f));

            DynamicImplementation.ExportInstance <IActivationStrategyCompiler>(
                f => new DynamicMethodStrategyCompiler(f.InjectionScope.ScopeConfiguration,
                                                       f.Locate <IActivationExpressionBuilder>(),
                                                       f.Locate <IAttributeDiscoveryService>(),
                                                       f.Locate <IDefaultStrategyExpressionBuilder>(),
                                                       f.Locate <IInjectionContextCreator>(),
                                                       f.Locate <IExpressionConstants>(),
                                                       f.Locate <IInjectionStrategyDelegateCreator>(),
                                                       f.Locate <ILinqToDynamicMethodConverter>()));
        }
示例#2
0
        /// <summary>
        /// default constructor
        /// </summary>
        public InjectionScopeConfiguration(ImplementationFactory implementationFactory = null)
        {
            Implementation = implementationFactory ?? DefaultImplementation.Clone();
            Behaviors      = new ExportCompilationBehavior();

            CacheArraySize            = 64;
            ExportStrategyArraySize   = 16;
            AutoRegisterUnknown       = true;
            ExportAsBase              = false;
            TrackDisposableTransients = true;
            SupportFuncType           = true;

            ExportByInterfaceFilter = DefaultInterfaceFilter;
        }