Пример #1
0
        static MunqUseCase()
        {
            container = new IocContainer();
            singleton = new Munq.LifetimeManagers.ContainerLifetime();

            container.Register<IWebService>(
                c => new WebService(
                    c.Resolve<IAuthenticator>(),
                    c.Resolve<IStockQuote>()));

            container.Register<IAuthenticator>(
                c => new Authenticator(
                    c.Resolve<ILogger>(),
                    c.Resolve<IErrorHandler>(),
                    c.Resolve<IDatabase>()));

            container.Register<IStockQuote>(
                c => new StockQuote(
                    c.Resolve<ILogger>(),
                    c.Resolve<IErrorHandler>(),
                    c.Resolve<IDatabase>()));

            container.Register<IDatabase>(
                c => new Database(
                    c.Resolve<ILogger>(),
                    c.Resolve<IErrorHandler>()));

            container.Register<IErrorHandler>(
                c => new ErrorHandler(c.Resolve<ILogger>()));

            container.RegisterInstance<ILogger>(new Logger())
                    .WithLifetimeManager(singleton);
        }
Пример #2
0
 /// <summary>
 /// Delays until this lifetime is complete
 /// </summary>
 /// <returns>an async task</returns>
 public static async Task AwaitEndOfLifetime(this ILifetimeManager manager)
 {
     while (manager != null && manager.IsExpired == false)
     {
         await Task.Delay(10);
     }
 }
Пример #3
0
        static MunqUseCase()
        {
            container = new IocContainer();
            singleton = new Munq.LifetimeManagers.ContainerLifetime();

            container.Register <IWebService>(
                c => new WebService(
                    c.Resolve <IAuthenticator>(),
                    c.Resolve <IStockQuote>()));

            container.Register <IAuthenticator>(
                c => new Authenticator(
                    c.Resolve <ILogger>(),
                    c.Resolve <IErrorHandler>(),
                    c.Resolve <IDatabase>()));

            container.Register <IStockQuote>(
                c => new StockQuote(
                    c.Resolve <ILogger>(),
                    c.Resolve <IErrorHandler>(),
                    c.Resolve <IDatabase>()));

            container.Register <IDatabase>(
                c => new Database(
                    c.Resolve <ILogger>(),
                    c.Resolve <IErrorHandler>()));

            container.Register <IErrorHandler>(
                c => new ErrorHandler(c.Resolve <ILogger>()));

            container.RegisterInstance <ILogger>(new Logger())
            .WithLifetimeManager(singleton);
        }
Пример #4
0
 internal Registration(string name, Type type, Func<Container, object> factory)
 {
     LifetimeManager = null;
     Factory			= factory;
     Id				= Guid.NewGuid().ToString();
     Name            = name;
 }
Пример #5
0
        /// <summary>
        /// Delays until this lifetime is complete
        /// </summary>
        /// <returns>an async task</returns>
        public static Task ToTask(this ILifetimeManager manager)
        {
            var tcs = new TaskCompletionSource();

            manager.OnDisposed(() => tcs.SetResult());
            return(tcs.Task);
        }
Пример #6
0
        /// <summary>
        /// Registers the specified object with its related lifetime manager, and the
        /// construction parameters used by the lifetime manager.
        /// </summary>
        /// <param name="serviceType">Type of service to register</param>
        /// <param name="serviceObjectType">Type of object implementing the service</param>
        /// <param name="parameters">Object construction parameters</param>
        /// <param name="properties">Object properties to inject</param>
        /// <param name="ltManager">Lifetime manager object</param>
        /// <param name="customContext"></param>
        public void Register(Type serviceType, Type serviceObjectType,
                             InjectedParameterSettingsCollection parameters = null,
                             PropertySettingsCollection properties          = null, ILifetimeManager ltManager = null,
                             object customContext = null)
        {
            if (serviceType == null)
            {
                throw new ArgumentNullException("serviceType");
            }
            if (serviceObjectType == null)
            {
                throw new ArgumentNullException("serviceObjectType");
            }
            if (_services.ContainsKey(serviceType))
            {
                throw new ServiceAlreadyRegisteredException(serviceType);
            }

            // --- Register the new mapping
            _services[serviceType] = new ServiceMapping(
                serviceType,
                serviceObjectType,
                ltManager ?? new PerCallLifetimeManager(),
                parameters,
                properties,
                customContext);

            // --- Reset lifetime managers
            foreach (var mapping in _services.Values)
            {
                mapping.LifetimeManager.ResetState();
                mapping.Resolved = false;
            }
        }
Пример #7
0
 public CatRegistration(Type from, Type to, ILifetimeManager lifetimeManager, string name = null)
 {
     this.From = from;
     this.To = to;
     this.LifetimeManager = lifetimeManager;
     this.Name = name;
 }
Пример #8
0
        public void Use(Func <IFsContainer, object> factoryFunc, ILifetimeManager lifetimeManager)
        {
            Guard.ArgumentNotNull(factoryFunc, nameof(factoryFunc));

            _binding.FactoryFunc = factoryFunc;
            _binding.Lifetime    = lifetimeManager;
        }
Пример #9
0
 internal Registration(string name, Type type, Func <Container, object> factory)
 {
     LifetimeManager = null;
     Factory         = factory;
     Id   = Guid.NewGuid().ToString();
     Name = name;
 }
Пример #10
0
 /// <summary>
 /// Subscribes to this event such that the given handler will be called when the event fires. Notifications will stop
 /// when the lifetime associated with the given lifetime manager is disposed.
 /// </summary>
 /// <param name="handler">the action to run when the event fires</param>
 /// <param name="lifetimeManager">the lifetime manager that determines when to stop being notified</param>
 public void SubscribeForLifetime(Action handler, ILifetimeManager lifetimeManager)
 {
     if (lifetimeManager.IsExpired == false)
     {
         subscribers.Add(handler, lifetimeManager);
         lifetimeManager.OnDisposed(() => subscribers.Remove(handler));
     }
 }
Пример #11
0
 public void RegisterType <TFrom, TTo>(ILifetimeManager lifetimeManager) where TTo : TFrom
 {
     this.ContainerDic.Add(typeof(TFrom).FullName, new RegisterInfo()
     {
         lifetimeManager = lifetimeManager,
         Type            = typeof(TTo)
     });
 }
Пример #12
0
 /// <summary>
 /// Registers the specified object with its related lifetime manager, and the
 /// construction parameters used by the lifetime manager.
 /// </summary>
 /// <param name="serviceType">Type of service to register</param>
 /// <param name="serviceObjectType">Type of object implementing the service</param>
 /// <param name="parameters">Object construction parameters</param>
 /// <param name="properties">Object properties to inject</param>
 /// <param name="ltManager">Lifetime manager object</param>
 /// <param name="customContext"></param>
 public void Register(Type serviceType, Type serviceObjectType,
                      InjectedParameterSettingsCollection parameters = null,
                      PropertySettingsCollection properties          = null, ILifetimeManager ltManager = null,
                      object customContext = null)
 {
     DefaultContainer.Register(serviceType, serviceObjectType, parameters, properties,
                               ltManager, customContext);
 }
Пример #13
0
 public TextHighlighter(string highlightClass, ILifetimeManager <Label> labels = null)
 {
     _container = new VisualContainer();
     _container.style.flexDirection = FlexDirection.Row;
     _labels = new ObjectList <Label>(
         labels ?? ListPool.New(() => new Label())
         );
     _highlightClass = highlightClass;
 }
Пример #14
0
 /// <summary>
 ///     Registers type using name
 /// </summary>
 private IContainer RegisterType(Type t, Type c, string name, ILifetimeManager lifetimeManager, object[] args)
 {
     lifetimeManager.CstorArgs     = args;
     lifetimeManager.TargetType    = c;
     lifetimeManager.InterfaceType = t;
     lock (_syncLock)
         _typeMapping.Add(new Primitives.Tuple <string, Type>(name, t), lifetimeManager);
     return(this);
 }
Пример #15
0
        /// <summary>
        /// Subscribes to the given event for the given lifetime
        /// </summary>
        /// <param name="route">the event to subscribe to</param>
        /// <param name="handler">the event handler</param>
        /// <param name="lifetimeManager">defines the lifetime of the subscription</param>
        public void Register(string route, Action <RoutedEvent <T> > handler, ILifetimeManager lifetimeManager)
        {
            GetOrAddRoutedEvent(route).SubscribeForLifetime(handler, lifetimeManager);

            lifetimeManager.OnDisposed(() =>
            {
                routes.Remove(route);
            });
        }
 public PassThroughLifetime(
     ILifetimeManager <T> parent,
     System.Action <T> onInstantiate,
     System.Action <T> onRelease
     )
 {
     _parent        = parent;
     _onInstantiate = onInstantiate;
     _onRelease     = onRelease;
 }
 public Registration(IDependencyResolver container, string name, Type regType, Type implType)
 {
     LifetimeManager = null;
     Container       = container;
     Factory         = null;
     Name            = name;
     _regType        = regType;
     _implType       = implType;
     _key            = String.Format("[{0}]:{1}", (name ?? "null"), implType.FullName);
 }
Пример #18
0
 public Registration(IDependencyResolver container, string name, Type regType, Type implType)
 {
     LifetimeManager = null;
     Container = container;
     Factory = null;
     Name = name;
     _regType = regType;
     _implType = implType;
     _key = String.Format("[{0}]:{1}", (name ?? "null"), implType.FullName);
 }
Пример #19
0
 public Registration(IDependencyResolver container, string name, Type type,
                     Func <IDependencyResolver, object> factory)
 {
     LifetimeManager = null;
     Container       = container;
     Factory         = factory;
     Name            = name;
     _type           = type;
     _key            = "[" + (name ?? "null") + "]:" + type.Name;
 }
Пример #20
0
        public Registration(IDependencyResolver container, string name, Type type, 
							Func<IDependencyResolver, object> factory)
        {
            LifetimeManager = null;
            Container       = container;
            Factory         = factory;
            Name            = name;
            _type           = type;
            _key            = "[" + (name ?? "null") + "]:" + type.Name;
        }
Пример #21
0
        public IBindingWithSyntax <T> Use <T>(ILifetimeManager lifetime)
        {
            Guard.ArgumentNotNull(lifetime, nameof(lifetime));

            _binding.Concrete = typeof(T);
            _binding.Lifetime = lifetime;

            Guard.TypeIsAssignable(_binding.Service, _binding.Concrete);

            return(new BindingConfigurationBuilder <T>(_binding.BindingConfiguration));
        }
Пример #22
0
 public ReuseList(System.Func <T> spawner)
 {
     _parent  = new VisualContainer();
     _entries = new List <T>();
     _pool    = ListPool.New(() =>
     {
         var entry = spawner();
         _parent.Add(entry.Element);
         return(entry);
     }
                             );
 }
Пример #23
0
        public void Constructor_Exception_NullLifetimeManager()
        {
            INavigationTarget navigationTarget = new MockNavigationTarget();
            IViewFactory      viewFactory      = MockViewFactory.WithPageAndViewModel;
            ILifetimeManager  lifetimeManager  = null;
            IStorageManager   storageManager   = new MockStorageManager();

            var e = Assert.Throws <ArgumentNullException>(() => new NavigationManager(navigationTarget, viewFactory, lifetimeManager, storageManager));

            Assert.Equal("Value cannot be null.\r\nParameter name: lifetimeManager", e.Message);
            Assert.Equal("lifetimeManager", e.ParamName);
        }
Пример #24
0
        public async Task SetInterval(Action action, TimeSpan interval, ILifetimeManager lifetime)
        {
            var shouldRun = true;

            lifetime.OnDisposed(() => shouldRun = false);
            while (shouldRun)
            {
                await DelayAsync(interval);

                action();
            }
        }
Пример #25
0
        // *** Constructors ***

        public NavigationManager(INavigationTarget navigationTarget, IViewFactory viewFactory, ILifetimeManager lifetimeManager, IStorageManager storageManager
#if !NETFX_CORE
            , IFileSystem fileSystem
#endif
            )
            : this(navigationTarget, viewFactory, lifetimeManager, storageManager
#if !NETFX_CORE
                , fileSystem
#endif
                , new NavigationStackWithHome())
        {
        }
Пример #26
0
 /// <summary>
 /// Registers the specified object with its related lifetime manager, and the
 /// construction parameters used by the lifetime manager.
 /// </summary>
 /// <param name="serviceType">Type of service to register</param>
 /// <param name="ltManager">Lifetime manager object</param>
 /// <param name="constructionParams">Instance construction parameters</param>
 /// <param name="properties">Initial property values</param>
 public void Register(Type serviceType, ILifetimeManager ltManager, 
     object[] constructionParams, PropertySettingsCollection properties = null)
 {
     if (_registry.ContainsKey(serviceType))
     {
         throw new ConfigurationErrorsException(
             String.Format("'{0}' type already registered with DefaultServiceRegistry", 
             serviceType));
     }
     _registry[serviceType] = new Tuple<ILifetimeManager, object[], PropertySettingsCollection>(
         ltManager, constructionParams, properties);
 }
Пример #27
0
        private bool TryResolve(out object result, Stack <Type> stack, Type type, string key, bool canThrow, bool returnNull = false)
        {
            if (type == null)
            {
                throw new ArgumentNullException(nameof(type));
            }

            if (stack == null)
            {
                throw new ArgumentNullException(nameof(stack));
            }

            if (key == null)
            {
                key = string.Empty;
            }

            using (new DisposablePush(stack, type))
            {
                ILifetimeManager lifetimeManager = null;

                using (_lock.UseReadLock())
                {
                    if (_isDisposed)
                    {
                        throw new ObjectDisposedException(GetType().Name);
                    }

                    if (_maps.RegistrationMap.TryGetValue(type, out Dictionary <string, ILifetimeManager> registrations))
                    {
                        registrations.TryGetValue(key, out lifetimeManager);
                    }
                }

                if (lifetimeManager != null)
                {
                    result = returnNull ? null : lifetimeManager.Resolve(this, stack);
                    return(true);
                }

                foreach (var handler in ResolutionHandlers)
                {
                    if (handler.TryResolve(out result, this, stack, type, key, canThrow))
                    {
                        return(true);
                    }
                }
            }

            result = null;
            return(false);
        }
Пример #28
0
            public void TryAddKey(ILifetimeManager lifetimeManager, Type type)
            {
                if (lifetimeManager.IsScoped && !_scopedKeys.Contains(type))
                {
                    _scopedKeys = _scopedKeys.ToList();
                    _scopedKeys.Add(type);
                }

                if (lifetimeManager.IsDisposable && !_disposableKeys.Contains(type))
                {
                    _disposableKeys = _disposableKeys.ToList();
                    _disposableKeys.Add(type);
                }
            }
Пример #29
0
        ///<inheritdoc/>
        public void RegisterType(Type tFrom, Type tTo, ILifetimeManager lifetimeManager = null, params object[] injectionMembers)
        {
            if (lifetimeManager == null)
            {
                lifetimeManager = new TransientLifetimeManager();
            }

            Func <Type, IResolver> valueFactory = _ => lifetimeManager.CreateResolver(tFrom, tTo);

            lock (lockObject)
            {
                this.values.AddOrUpdate(tFrom, valueFactory, (k, o) => valueFactory(k));
            }
        }
Пример #30
0
 /// <summary>
 /// Delays until this lifetime is complete
 /// </summary>
 /// <returns>an async task</returns>
 public static async Task AwaitEndOfLifetime(this ILifetimeManager manager)
 {
     while (manager != null && manager.IsExpired == false)
     {
         if (Time.CurrentTime != null)
         {
             await Time.CurrentTime.YieldAsync();
         }
         else
         {
             await Task.Yield();
         }
     }
 }
Пример #31
0
 /// <summary>
 /// Creates a new instance with the specified parameters.
 /// </summary>
 public ServiceMapping(
     Type serviceType,
     Type serviceObjectType,
     ILifetimeManager lifetimeManager,
     InjectedParameterSettingsCollection constructionParameters,
     PropertySettingsCollection properties,
     object customContext)
 {
     ServiceType            = serviceType;
     ServiceObjectType      = serviceObjectType;
     LifetimeManager        = lifetimeManager;
     ConstructionParameters = constructionParameters;
     Properties             = properties;
     CustomContext          = customContext;
 }
Пример #32
0
        ///<inheritdoc/>
        public object ResolveOrRegisterType(Type tFrom, Type tTo, ILifetimeManager lifetimeManager = null, string name = null, params ParameterOverride[] overrides)
        {
            lock (lockObject)
            {
                var resolver = GetResolver(tFrom);
                if (resolver != null)
                {
                    return(resolver.Resolve(this, name, overrides));
                }

                RegisterType(tFrom, tTo, lifetimeManager);

                return(Resolve(tFrom, name, overrides));
            }
        }
 public void AddOrUpdate(Type type, string identifier, ILifetimeManager manager)
 {
     IDictionary<string, ILifetimeManager> qualifiedMap = new Dictionary<string, ILifetimeManager>();
     if (this._map.ContainsKey(type)) {
         qualifiedMap = this._map[type];
         if (qualifiedMap.ContainsKey(identifier)) {
             qualifiedMap[identifier] = manager;
         } else {
             qualifiedMap.Add(identifier, manager);
         }
     } else {
         qualifiedMap.Add(identifier, manager);
         this._map.Add(type, qualifiedMap);
     }
 }
Пример #34
0
 public void Add(string name, Type type, ILifetimeManager ltm)
 {
     if (!_map.ContainsKey(type))
     {
         _map.Add(type, new Dictionary <string, ILifetimeManager>());
     }
     if (_map[type].ContainsKey(name))
     {
         _map[type][name] = ltm;
     }
     else
     {
         _map[type].Add(name, ltm);
     }
 }
Пример #35
0
        public NavigationManager([Import(AllowDefault = true)]INavigationTarget navigationTarget, IViewFactory viewFactory, ILifetimeManager lifetimeManager, IStorageManager storageManager)
        {
            this.viewFactory = viewFactory;
            this.storageManager = storageManager;

            // Use a default INavigationTarget if not specified

            if (navigationTarget != null)
                this.navigationTarget = navigationTarget;
            else
                this.navigationTarget = new WindowNavigationTarget();

            // Register with the LifetimeManager

            lifetimeManager.Register(this);
        }
Пример #36
0
        // *** Constructors ***

        public NavigationManager(INavigationTarget navigationTarget, IViewFactory viewFactory, ILifetimeManager lifetimeManager, IStorageManager storageManager)
            : base(viewFactory)
        {
            this.storageManager = storageManager;

            // Use a default INavigationTarget if not specified

            if (navigationTarget != null)
                this.navigationTarget = navigationTarget;
            else
                this.navigationTarget = new WindowNavigationTarget();

            // Register with the LifetimeManager

            lifetimeManager.Register(this);
        }
Пример #37
0
        public void Register(ILifetimeManager lifetimeManager, Type fromType, string key = null)
        {
            if (key == null)
            {
                key = string.Empty;
            }

            using (_lock.UseWriteLock())
            {
                if (_isDisposed)
                {
                    throw new ObjectDisposedException(GetType().Name);
                }

                if (_maps.RegistrationMap.TryGetValue(fromType, out Dictionary <string, ILifetimeManager> registrations))
                {
                    if (IncludeUnkeyedInResovleAll && registrations.ContainsKey(key) && key == string.Empty)
                    {
                        key = $"_unkeyed_{Interlocked.Increment(ref _keySeed)}";
                    }

                    var clone = _maps.RegistrationMap[fromType] = new Dictionary <string, ILifetimeManager>(registrations);
                    clone[key] = lifetimeManager;
                }
                else
                {
                    _maps.RegistrationMap[fromType] = new Dictionary <string, ILifetimeManager>
                    {
                        { key, lifetimeManager }
                    }
                };

                _maps.TryAddKey(lifetimeManager, fromType);
            }

            if (Log.IsEnabled(LogLevel.Debug))
            {
                if (string.IsNullOrWhiteSpace(key))
                {
                    Log.Debug("Type: {0} - {1}", fromType.Name, lifetimeManager.Description);
                }
                else
                {
                    Log.Debug("Type: {0} - Key: {1} - {2}", fromType.Name, key, lifetimeManager.Description);
                }
            }
        }
Пример #38
0
        private ILifetimeManager ResolveLifetime(ILifetimeManager lifetimeManager)
        {
            //if cstor isn't provided, try to resolve one with dependency attribute
            if (lifetimeManager.Constructor == null && lifetimeManager.TargetType != null)
            {
                lifetimeManager.Constructor = TypeHelper.GetConstructor(lifetimeManager.TargetType,
                                                                        typeof(DependencyAttribute));
            }

            //NOTE: resolve all parameters of provided constructor
            if (lifetimeManager.Constructor != null)
            {
                lifetimeManager.CstorArgs =
                    lifetimeManager.Constructor.GetParameters().Select(p => Resolve(p.ParameterType)).ToArray();
            }
            return(lifetimeManager);
        }
Пример #39
0
        public Registration(IIocContainer container, string name, Type type, Func <IIocContainer, object> factory)
        {
            LifetimeManager = null;
            Container       = container;
            Factory         = factory;
            Name            = name;
            _type           = type;
            _key            = "[" + (name ?? "null") + "]:" + type.Name;

            if (name == null)
            {
                LazyFactory = () => container.Resolve(_type);
            }
            else
            {
                LazyFactory = () => container.Resolve(Name, _type);
            }
        }
Пример #40
0
        public void Register(Type i, Type c, ILifetimeManager lifetimeManager = null)
        {
            if (lifetimeManager == null)
            {
                lifetimeManager = new PerResolveLifetimeManager();
            }

            var dependencyModel = new DependencyModel
            {
                From               = i,
                To                 = c,
                LifetimeManager    = lifetimeManager.GetType(),
                LifetimeManagerKey = lifetimeManager.GetKey(),
                ResolvedType       = DobbyInstanceService.GetInstance(c)
            };

            _registeredTypes.Add(dependencyModel);
            lifetimeManager.Dispose();
        }
Пример #41
0
        protected NavigationManager(INavigationTarget navigationTarget, IViewFactory viewFactory, ILifetimeManager lifetimeManager, IStorageManager storageManager
#if !NETFX_CORE
, IFileSystem fileSystem
#endif
            , INavigationStack navigationStack)
            : base(viewFactory, navigationStack)
        {
            if (lifetimeManager == null)
                throw new ArgumentNullException(nameof(lifetimeManager));

            if (storageManager == null)
                throw new ArgumentNullException(nameof(storageManager));

            _storageManager = storageManager;

#if !NETFX_CORE
            if (fileSystem == null)
                throw new ArgumentNullException(nameof(fileSystem));

            _fileSystem = fileSystem;
#endif

            // Use a default INavigationTarget if not specified

            if (navigationTarget != null)
                _navigationTarget = navigationTarget;
            else
#if NETFX_CORE
                _navigationTarget = new WindowNavigationTarget();
#else
                _navigationTarget = new NavigationViewNavigationTarget();
#endif

            // Register with the LifetimeManager

            lifetimeManager.Register(this);
        }
Пример #42
0
        public static void Configure(IocContainer container, ILifetimeManager lifetime)
        {
            CreateComponentMappedProperties
                .AddRuleForIdentifyingComponents(
                    x => x.ReturnType().GetCustomAttributes(typeof(ValueTypeAttribute), false).Any());

            var cs = ConfigurationManager.ConnectionStrings["Project1"].ConnectionString;

            var configuration = ConfigurationBuilder.New(true)
                .ForSql2008(cs)
                .MapEntities(typeof (User).Assembly.GetTypes(), MatchEntities.WithIdProperty);
            //Environment.UseReflectionOptimizer = false;
            configuration.SetProperty(Environment.GenerateStatistics, "true");
            configuration.SetProperty(Environment.BatchSize, "10");
            configuration.SetProperty(Environment.ConnectionDriver,
                                      typeof(ProfiledSql2008ClientDriver).AssemblyQualifiedName);

            new SchemaUpdate(configuration).Execute(s => Debug.WriteLine(s), true);

            {
                //Set up some black magic that allows us to use Fac to create our entities
                Fac.Default.Interceptors.Add(t => new MarkerInterceptor(t));
                Fac.Default.TypesToImplement.Add(t => typeof (IMarkerInterface));
                configuration.InterceptObjectInstantiation(container.Resolve<ISessionFactory>, Fac.New);
            }
            var sf = configuration.BuildSessionFactory();
            NullabilityRules.AddNotNullAttribute<NotNullAttribute>();

            //NhCodeFirst.UserTypes.SerializedUserType.Deserialize = JsonSerializer.DeserializeFromString;
            //NhCodeFirst.UserTypes.SerializedUserType.Serialize = JsonSerializer.SerializeToString;

            configuration.ExecuteAuxilliaryDatabaseScripts(sf);

            container.RegisterInstance(sf);
            container.Register(k => k.Resolve<ISessionFactory>().OpenSession()).WithLifetimeManager(lifetime);
        }
        // *** Private Methods ***

        private TestableNavigationManager CreateNavigationManager(INavigationTarget navigationTarget = null, IViewFactory viewFactory = null, INavigationStack navigationStack = null, ILifetimeManager lifetimeManager = null, IStorageManager storageManager = null, bool navigationTargetIsNull = false)
        {
            if (navigationTarget == null && !navigationTargetIsNull)
                navigationTarget = new MockNavigationTarget();

            if (viewFactory == null)
                viewFactory = MockViewFactory.WithPageAndViewModel;

            if (navigationStack == null)
                navigationStack = new MockNavigationStack();

            if (lifetimeManager == null)
                lifetimeManager = new MockLifetimeManager();

            if (storageManager == null)
                storageManager = new MockStorageManager();

            TestableNavigationManager navigationManager = new TestableNavigationManager(navigationTarget, viewFactory, navigationStack, lifetimeManager, storageManager);

            return navigationManager;
        }
            // *** Constructors ***

            public TestableNavigationManager(INavigationTarget navigationTarget, IViewFactory viewFactory, INavigationStack navigationStack, ILifetimeManager lifetimeManager, IStorageManager storageManager)
                : base(navigationTarget, viewFactory, lifetimeManager, storageManager, navigationStack)
            {
            }
Пример #45
0
 public IRegistration WithLifetimeManager(ILifetimeManager manager)
 {
     LifetimeManager = manager;
     return this;
 }
Пример #46
0
 /// <inheritdoc />
 public IContainerFluent UsesDefaultLifetimeManagerOf(ILifetimeManager lifetimeManager)
 {
     DefaultLifetimeManager = lifetimeManager;
     return this;
 }