コード例 #1
0
        public RegisterClasse Register(Type iclasse, Type classe, RegisterTipo tipo = RegisterTipo.Singleton)
        {
            if (_registeredTypes.ContainsKey(iclasse))
            {
                _registeredTypes.Remove(iclasse);
            }
            var registerClasse = new RegisterClasse(iclasse, classe, tipo);

            _registeredTypes.Add(iclasse, registerClasse);
            return(registerClasse);
        }
コード例 #2
0
        private object Resolve(RegisterClasse registerClasse)
        {
            switch (registerClasse.Tipo)
            {
            case RegisterTipo.PerThread:
                return(GetObjetoPerThread(registerClasse.Classe));

            case RegisterTipo.PerWebRequest:
                return(GetObjetoPerWebRequest(registerClasse.Classe));

            case RegisterTipo.Scope:
                return(GetObjetoScope(registerClasse.Classe));

            case RegisterTipo.Singleton:
                return(GetObjetoSingleton(registerClasse.Classe));

            default:
            case RegisterTipo.Transient:
                return(GetObjeto(registerClasse.Classe));
            }
        }
コード例 #3
0
 public static RegisterClasse PerWebRequest(this RegisterClasse registerClasse) =>
 registerClasse.SetRegisterTipo(RegisterTipo.PerWebRequest);
コード例 #4
0
 public static RegisterClasse PerTransient(this RegisterClasse registerClasse) =>
 registerClasse.SetRegisterTipo(RegisterTipo.Transient);
コード例 #5
0
 public static RegisterClasse PerThread(this RegisterClasse registerClasse) =>
 registerClasse.SetRegisterTipo(RegisterTipo.PerThread);
コード例 #6
0
 public static RegisterClasse PerSingleton(this RegisterClasse registerClasse) =>
 registerClasse.SetRegisterTipo(RegisterTipo.Singleton);
コード例 #7
0
 public static RegisterClasse PerScope(this RegisterClasse registerClasse) =>
 registerClasse.SetRegisterTipo(RegisterTipo.Scope);
コード例 #8
0
 public static RegisterClasse SetRegisterTipo(this RegisterClasse registerClasse, RegisterTipo tipo)
 {
     registerClasse.Tipo = tipo;
     return(registerClasse);
 }