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); }
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)); } }
public static RegisterClasse PerWebRequest(this RegisterClasse registerClasse) => registerClasse.SetRegisterTipo(RegisterTipo.PerWebRequest);
public static RegisterClasse PerTransient(this RegisterClasse registerClasse) => registerClasse.SetRegisterTipo(RegisterTipo.Transient);
public static RegisterClasse PerThread(this RegisterClasse registerClasse) => registerClasse.SetRegisterTipo(RegisterTipo.PerThread);
public static RegisterClasse PerSingleton(this RegisterClasse registerClasse) => registerClasse.SetRegisterTipo(RegisterTipo.Singleton);
public static RegisterClasse PerScope(this RegisterClasse registerClasse) => registerClasse.SetRegisterTipo(RegisterTipo.Scope);
public static RegisterClasse SetRegisterTipo(this RegisterClasse registerClasse, RegisterTipo tipo) { registerClasse.Tipo = tipo; return(registerClasse); }