public static IContainerBuilder Init() { var builder = new AutofacContainerBuilder(); builder.Register<IMotorcyclePayload>(new MotorcyclePayload()); builder.Register<IStartViewModel, StartViewModel>(); builder.Register<IEditMotorcycleViewModel, EditMotorcycleViewModel>(); return builder; }
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(); }
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); }); }