Ejemplo n.º 1
0
 /// <summary>
 /// Checks if <paramref name="value"/> has the flag <paramref name="flag"/> set.
 /// </summary>
 /// <param name="value">The value to check.</param>
 /// <param name="flag">The flag to check.</param>
 /// <returns>True if value has the flag set.</returns>
 public static bool HasFlagFast(this DependencyTypes value, DependencyTypes flag)
 {
     return((value & flag) != 0);
 }
Ejemplo n.º 2
0
        public static void RegisterInterfaces(string interfaceType, IServiceCollection services, Assembly coreAssembly, Assembly serviceAssembly, DependencyTypes type = DependencyTypes.Scoped)
        {
            var matches = serviceAssembly.GetTypes()
                          .Where(t => t.Name.EndsWith(interfaceType, StringComparison.Ordinal) && t.GetInterfaces().Any(i => i.Assembly == coreAssembly))
                          .Select(t => new
            {
                serviceType      = t.GetInterfaces().FirstOrDefault(i => i.Assembly == coreAssembly && !i.Name.ToLower().StartsWith("ibase")),
                implementingType = t
            }).ToList();

            // Registers the interface to the implementation.
            foreach (var match in matches)
            {
                switch (type)
                {
                case DependencyTypes.Scoped:
                    services.AddScoped(match.serviceType, match.implementingType);
                    break;

                case DependencyTypes.Singleton:
                    services.AddSingleton(match.serviceType, match.implementingType);
                    break;

                case DependencyTypes.Transient:
                    services.AddTransient(match.serviceType, match.implementingType);
                    break;
                }
            }
        }