예제 #1
0
        /// <summary>
        /// Same as Bind<typeparamref name="T"/>() method, however the registered object resolution will be executed at runtime (i.e. upon the object's request from the context).
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="isStatic">if set to <c>true</c> [is static].</param>
        /// <returns></returns>
        public static ICanBindInterface <T> Bind <T>(bool isStatic)
        {
            var parser = new ConditionalBindingDefinitionParser(typeof(T), isStatic);

            FluentStaticConfiguration.RegisterObjectConfiguration(parser);
            return(new ConditionalBinder <T>(parser));
        }
예제 #2
0
        //public static ICanConfigureCreatedObject<T> RegisterByExpression<T>(Expression<Func<IObjectRegistry, T>> objectCreation)
        //{
        //    return RegisterByExpression<T>(objectCreation, typeof (T).FullName);
        //}

        //public static ICanConfigureCreatedObject<T> RegisterByExpression<T>(Expression<Func<IObjectRegistry, T>> objectCreation, string identifierName)
        //{
        //    ICanContainConfiguration configurationParser = FluentStaticConfiguration.GetConfigurationParser(identifierName);
        //    if (configurationParser == null)
        //    {
        //        configurationParser = new LambdaObjectDefinitionExpressionParser<T>(identifierName);
        //    }

        //    var objectBinder = new ConstructorObjectExpressionBinder<T>((LambdaObjectDefinitionExpressionParser<T>)configurationParser);
        //    objectBinder.AddConstructorDelegate(objectCreation);

        //    FluentStaticConfiguration.RegisterObjectConfiguration(configurationParser);
        //    return objectBinder;

        //}

        public static ICanFilterType RegisterConvention()
        {
            ConventionConfigurationParser conventionConfigurationParser = new ConventionConfigurationParser();

            FluentStaticConfiguration.RegisterConvention(conventionConfigurationParser);
            return(new TypeFilterBinder(conventionConfigurationParser));
        }
예제 #3
0
        public static ICanConfigureObject <T> Register <T>(string identifierName) where T : class
        {
            ICanContainConfiguration configurationParser = FluentStaticConfiguration.GetConfigurationParser(identifierName);

            if (configurationParser == null)
            {
                configurationParser = new ObjectDefinitionParser(typeof(T), identifierName);
            }

            var objectBinder = new ObjectBinder <T>((ObjectDefinitionParser)configurationParser);

            FluentStaticConfiguration.RegisterObjectConfiguration(configurationParser);
            return(objectBinder);
        }
예제 #4
0
        public static ICanConfigureCreatedObject <T> Register <T>(Func <IApplicationContext, T> objectCreation, string identifierName)
        {
            ICanContainConfiguration configurationParser = FluentStaticConfiguration.GetConfigurationParser(identifierName);

            if (configurationParser == null)
            {
                configurationParser = new ConstructorObjectDefinitionParser <T>(identifierName);
            }

            var objectBinder = new ConstructorObjectBinder <T>((ConstructorObjectDefinitionParser <T>)configurationParser);

            objectBinder.AddConstructorDelegate(objectCreation);

            FluentStaticConfiguration.RegisterObjectConfiguration(configurationParser);
            return(objectBinder);
        }
예제 #5
0
 public static void Clear()
 {
     FluentStaticConfiguration.Clear();
     ConditionalBindingDefinitionParser.Clear();
 }
예제 #6
0
 /// <summary>
 /// Scans the specified assemblies for any class which has fluent configuration.
 /// A class implementing ICanConfigureApplicationContext interface will be created and the Configure() method call.
 /// </summary>
 /// <param name="assemblies">The assemblies.</param>
 public static void Scan(Func <IEnumerable <Assembly> > assemblies)
 {
     FluentStaticConfiguration.RegisterAssembliesToScan(assemblies);
 }
예제 #7
0
 protected override void LoadObjectDefinitions(DefaultListableObjectFactory objectFactory)
 {
     FluentStaticConfiguration.LoadConfiguration(objectFactory);
     base.LoadObjectDefinitions(objectFactory);
 }