예제 #1
0
        public static IContainerBuilder Init()
        {
            var builder = new AutofacContainerBuilder();

            builder.Register<IMotorcyclePayload>(new MotorcyclePayload());

            builder.Register<IStartViewModel, StartViewModel>();
            builder.Register<IEditMotorcycleViewModel, EditMotorcycleViewModel>();

            return builder;
        }
예제 #2
0
        private void RegisterDependencies()
        {
            //Register each DP as the type it selected to expose
            foreach (DependencyTypePair dtp in TypePairs)
            {
                AutofacContainerBuilder.RegisterInstance(dtp.Behaviour)
                .As(dtp.SelectedType);
            }

            //the IoC container visits each dependency registeration object
            //This allows the registeration logic to be handled differently
            foreach (var nbd in NonBehaviourDependencies)
            {
                nbd.Register(AutofacContainerBuilder);
            }

            //Register the GameObjectFactory and ComponentFactory too
            AutofacContainerBuilder.Register(context => new DefaultGameObjectFactory(context.Resolve <IComponentContext>(), new DefaultInjectionStrategy()))
            .As <IGameObjectFactory>()
            .SingleInstance();

            AutofacContainerBuilder.Register(context => new DefaultGameObjectComponentAttachmentFactory(context.Resolve <IComponentContext>(), new DefaultInjectionStrategy()))
            .As <IGameObjectComponentAttachmentFactory>()
            .SingleInstance();

            AutofacContainerBuilder.Register(context => new DefaultManualInjectionStrategy(context.Resolve <IComponentContext>()))
            .As <IManualInjectionStrategy>()
            .SingleInstance();

            BuiltContainerResolver = AutofacContainerBuilder.Build();
        }
예제 #3
0
        public static IContainerBuilder Init()
        {
            var builder = new AutofacContainerBuilder();

            builder.Register <IMotorcyclePayload>(new MotorcyclePayload());

            builder.RegisterSingleton <ITabBarViewModel, TabBarViewModel>();
            builder.RegisterSingleton <IHomeViewModel, HomeViewModel>();

            builder.RegisterSingleton <IStartViewModel, StartViewModel>();
            builder.RegisterSingleton <IEditMotorcycleViewModel, EditMotorcycleViewModel>();

            builder.RegisterSingleton <INavStartViewModel, NavStartViewModel>();
            builder.RegisterSingleton <INav1ViewModel, Nav1ViewModel>();
            builder.RegisterSingleton <INav1AViewModel, Nav1AViewModel>();
            builder.RegisterSingleton <INav1BViewModel, Nav1BViewModel>();
            builder.RegisterSingleton <INav1CViewModel, Nav1CViewModel>();
            builder.RegisterSingleton <INav2ViewModel, Nav2ViewModel>();
            builder.RegisterSingleton <INav2AViewModel, Nav2AViewModel>();
            builder.RegisterSingleton <INav2BViewModel, Nav2BViewModel>();
            builder.RegisterSingleton <INav2CViewModel, Nav2CViewModel>();
            builder.RegisterSingleton <INav3ViewModel, Nav3ViewModel>();
            builder.RegisterSingleton <INav3AViewModel, Nav3AViewModel>();
            builder.RegisterSingleton <INav3BViewModel, Nav3BViewModel>();
            builder.RegisterSingleton <INav3CViewModel, Nav3CViewModel>();

            return(builder);
        }
 /// <summary>
 /// 注册扫描的结果
 /// </summary>
 /// <param name="setup"></param>
 /// <param name="targetModule">目标模块,A 使用 B,那 A 就是 targetModule</param>
 /// <param name="autofacContainerBuilder">autofac 容器构建器</param>
 private static void RegisterScanResult(AppSetup setup, IAppModule targetModule, AutofacContainerBuilder autofacContainerBuilder, IEnumerable <AttributeAndTypeInfo> infos)
 {
     infos.Where(x => x.Attribute is ComponentAttribute)
     .Where(x => x.Type.IsClass && !x.Type.IsAbstract)
     .ForEach(x =>
     {
         autofacContainerBuilder.Register(x.Type, ((ComponentAttribute)x.Attribute).RegistionMode);
     });
 }