protected override IMapsDirectlyToDatabaseTable ConstructEntity(Type t, DbDataReader reader) { if (Constructors.ContainsKey(t)) { return(Constructors[t](this, reader)); } return(_constructor.ConstructIMapsDirectlyToDatabaseObject <ICatalogueRepository>(t, this, reader)); }
public Tin Resolve <Tin>() { var typeIn = typeof(Tin); if (!Constructors.ContainsKey(typeIn)) { return(Resolve <Tin>(null)); } else { var constructor = Constructors[typeIn]; return((Tin)constructor()); } }
public void Register <Tin, Tout>() where Tout : class, Tin, new() { var typeIn = typeof(Tin); var typeOut = typeof(Tout); var func = new Func <object>(() => { return(Activator.CreateInstance(typeOut)); }); if (Constructors.ContainsKey(typeIn)) { Constructors[typeIn] = func; } else { Constructors.Add(typeIn, func); } }