static void Main(string[] args) { IContainer container = new Container(); container.AddTransient <IUserRepository, UserRepository>(); container.AddTransient <IRoleRepository, RoleRepository>(); container.AddTransient <IUserService, UserService>(); container.AddTransient <IRoleService, RoleService>(); container.AddSingleton <IMailer, Mailer>(() => new Mailer("test")); //IRoleRepository roleRepo = container.Get<IRoleRepository>(); //IRoleService roleService = container.Get<IRoleService>(); //IUserService userService = container.Get<IUserService>(); IMailer mailer = container.Get <IMailer>(); IMailer mail2 = container.Get <IMailer>(); if (mailer.Equals(mail2)) { Console.WriteLine("Given mail have same reference"); } }