コード例 #1
0
        /// <summary>Shared through all session, but inner cmp to app scope initialization.</summary>
        static void RegisterSessionSingletons(DryIoc.Container container)
        {
            var tray = (TaskbarIcon)Application.Current.Resources["SysTray"];

            container.UseInstance(tray);
            container.UseInstance(new AppInfo(typeof(App).Assembly));
            container.UseInstance(TaskScheduler.FromCurrentSynchronizationContext()); // UI Tasks Scheduler
        }
コード例 #2
0
        internal static void Register(DryIoc.Container container)
        {
            Type getImplType(Request r) => r.Parent.ImplementationType;

            // https://bitbucket.org/dadhi/dryioc/wiki/ExamplesContextBasedResolution
            container.Register(
                made: Made.Of(() => LogManager.GetCurrentClassLogger(Arg.Index <Type>(0)), getImplType),
                setup: Setup.With(condition: req => req.Parent.ImplementationType != null),
                reuse: Reuse.Transient);

            container.UseInstance(new EnvInfo());

            container.Register <ISettingsService, SettingsService>(Reuse.Singleton);
            container.Register(typeof(IShell <>), typeof(CommandPromptShell), Reuse.Singleton); // reg open gen https://bitbucket.org/dadhi/dryioc/wiki/OpenGenerics
            container.Register <IWebBrowser, WebBrowser>(Reuse.Singleton);
        }
コード例 #3
0
        internal static DryIoc.IContainer Compose()
        {
            var c = new DryIoc.Container();

            c.Register <DirectoriesViewModel>(Reuse.Singleton);
            c.Register <SyncsViewModel>(Reuse.Singleton);
            c.Register <MainViewModel>(Reuse.Singleton);

            c.Register <IBusyStack, BusyStack>(Reuse.Transient);

            c.UseInstance(ScarletCommandBuilder.Default);
            c.UseInstance(ScarletCommandManager.Default);
            c.UseInstance(ScarletDispatcher.Default);
            c.UseInstance(ScarletExitService.Default);
            c.UseInstance(ScarletMessenger.Default);
            c.UseInstance(ScarletWeakEventManager.Default);

            return(c);
        }