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);
        }
Exemple #2
0
 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"
                ));
 }
Exemple #4
0
 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);
        }
Exemple #6
0
        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();
            }
        }
Exemple #7
0
 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);
 }
Exemple #9
0
 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");
 }