Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var qq = new SearchQueryDalExecutor(null);
- var assembliesNames = GetType().Assembly.GetReferencedAssemblies()
- .Where(a => a.FullName.Contains("Autosputnik")).ToList();
- assembliesNames.ForEach(a => Assembly.Load(a));
- var assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.FullName.Contains("Autosputnik"))
- .ToList();
- var registrations = assemblies.SelectMany(a1 => a1.GetExportedTypes()
- .SelectMany(t => t.GetCustomAttributes(false).Where(a => a is RegisterToDiAttribute)
- .Select(a => (t, (a as RegisterToDiAttribute).InterfaceType)))).ToList();
- foreach (var (type, interfaceType) in registrations)
- {
- if (interfaceType == default(Type[]))
- services.AddTransient(type);
- else
- foreach (var iType in interfaceType)
- {
- services.AddTransient(iType, type);
- }
- }
- var singletonRegistrations = assemblies.SelectMany(a1 => a1.GetExportedTypes()
- .SelectMany(t => t.GetCustomAttributes(false).Where(a => a is RegisterSingletonToDiAttribute)
- .Select(a =>
- (t, (a as RegisterSingletonToDiAttribute)?.InterfaceType)))).ToList();
- foreach (var (type, interfaceType) in singletonRegistrations)
- {
- if (interfaceType == default)
- services.AddSingleton(type);
- else
- services.AddSingleton(interfaceType, type);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement