예제 #1
0
        internal static TAppBuilder UseAutofac <TAppBuilder>(this TAppBuilder builder, Module autofacModule)
            where TAppBuilder : AppBuilderBase <TAppBuilder>, new()
        {
            return(builder.AfterPlatformServicesSetup(_ => {
                var containerBuilder = new ContainerBuilder();
                containerBuilder.RegisterModule(autofacModule);
                AutofacDependencyResolver resolver = new AutofacDependencyResolver(containerBuilder);
                Locator.SetLocator(resolver);
                Locator.CurrentMutable.InitializeSplat();
                Locator.CurrentMutable.InitializeReactiveUI();
                Locator.CurrentMutable.InitializeAvalonia();

                var container = containerBuilder.Build();
                resolver.SetLifetimeScope(container);
            }));
        }