public static TinyIoCContainer.RegisterOptions WithScopeFromRegistrationInfo(this TinyIoCContainer.RegisterOptions regOpts, DependencyRegistration registration) { if (regOpts == null) { throw new ArgumentNullException(nameof(regOpts)); } if (registration == null) { throw new ArgumentNullException(nameof(registration)); } switch (registration.Scope) { case DependencyScope.Singleton: regOpts.AsSingleton(); break; case DependencyScope.Thread: regOpts.AsPerRequestSingleton(); break; case DependencyScope.Transient: if (!registration.IsProviderRegistration) { regOpts.AsMultiInstance(); } break; } return(regOpts); }
public static TinyIoCContainer.RegisterOptions AsPerRequestSingleton(this TinyIoCContainer.RegisterOptions registerOptions, TinyIoCContainer.ITinyIoCObjectLifetimeProvider lifetimeProvider) { return(TinyIoCContainer.RegisterOptions.ToCustomLifetimeManager( registerOptions, lifetimeProvider, "per request singleton" )); }
/// <summary> /// Registers a class such that every ASP.NET web request has a single instance of it. /// Instances will be stored in HttpContext. /// </summary> /// <param name="registerOptions">Registration options</param> /// <returns>Registration options (for chaining)</returns> private static TinyIoCContainer.RegisterOptions AsPerRequestSingleton(TinyIoCContainer.RegisterOptions registerOptions) { return(TinyIoCContainer.RegisterOptions.ToCustomLifetimeManager( registerOptions, new HttpContextLifetimeProvider(), "per request singleton" )); }
public static TinyIoCContainer.RegisterOptions Life(this TinyIoCContainer.RegisterOptions registration, LifeStyle life) { if (life == LifeStyle.Singleton) { return(registration.AsSingleton()); } return(registration.AsMultiInstance()); }
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Nancy2Core.dll"); Console.WriteLine($"Loading module[{path}]..."); var assembly = Assembly.LoadFile(path); Console.WriteLine($"Successfully loaded module[{assembly.FullName}]."); var nancy2Modtype = assembly.GetType("Nancy2Core.Nancy2"); Console.WriteLine($"Found module type[{nancy2Modtype.Name}] and registering with TinyIoContainer."); TinyIoCContainer.RegisterOptions options = container.Register(nancy2Modtype); base.ApplicationStartup(container, pipelines); }
private static void ApplyOptions(TinyIoCContainer.RegisterOptions r, DefaultRegistrationBuilderBase instanceRegistration) { object scopeConfigObj; var singleton = false; if (instanceRegistration.Options.TryGetValue("Singleton", out scopeConfigObj)) { singleton = (bool)scopeConfigObj; } if (singleton) { r.AsSingleton(); } }
public static TinyIoCContainer.RegisterOptions AsPerThreadSingleton(this TinyIoCContainer.RegisterOptions registerOptions) { return(TinyIoCContainer.RegisterOptions.ToCustomLifetimeManager(registerOptions, new PerThreadLifetimeProvider(), "per thread singleton")); }
public IAdaptAnInversionOfControlContainer Register <RegisterType, RegisterImplementation>(RegisterImplementation instance) where RegisterType : class where RegisterImplementation : class, RegisterType { _registerOptions = _container.Register <RegisterType, RegisterImplementation>(instance); return(this); }
public static TinyIoCContainer.RegisterOptions AsPerRequestSingleton(this TinyIoCContainer.RegisterOptions registerOptions) { throw new NotImplementedException(); //var httpContextLifetimeProvider = (TinyIoCContainer.ITinyIoCObjectLifetimeProvider)TypeActivator.Create(HttpContextLifetimeProviderType); //return TinyIoCContainer.RegisterOptions.ToCustomLifetimeManager(registerOptions, httpContextLifetimeProvider, "per request singleton"); }