var typesInterface = Assembly.Load("Example.Interface").GetTypes().Where(w=>w.Name.Contains("Service")); var typesImpl = Assembly.Load("Example.Service").GetTypes().Where(w => w.Name.Contains("Service")); foreach (var item in typesInterface) { var name = item.Name.Substring(1); var impl = typesImpl.FirstOrDefault(w => w.Name.Contains(name)); if (impl != null) { services.AddTransient(item, impl); } }