/// <summary> /// 注册 程序集 /// </summary> public static IEnumerableRegistration RegisterAssembly(this IDependencyRegister dependencyRegister, Assembly assembly) { if (assembly == null) { throw new ArgumentNullException(nameof(assembly)); } var enumerableConfiguration = DependencyRegistrationFactory.ForAssembly(assembly); return(RegisterCollection(dependencyRegister, enumerableConfiguration)); }
/// <summary> /// 注册 委托 /// </summary> public static IDependencyRegistration RegisterDelegate <TService, TImplementation>(this IDependencyRegister dependencyRegister, Func <IDependencyResolver, TImplementation> implementationDelegate) where TService : class where TImplementation : class, TService { if (implementationDelegate == null) { throw new ArgumentNullException(nameof(implementationDelegate)); } var registerConfiguration = DependencyRegistrationFactory.ForDelegate(typeof(TService), implementationDelegate); return(RegisterRegistration(dependencyRegister, registerConfiguration)); }
/// <summary> /// 注册 实例 /// </summary> public static IDependencyRegistration RegisterInstance(this IDependencyRegister dependencyRegister, Type serviceType, Object implementationInstance) { if (serviceType == null) { throw new ArgumentNullException(nameof(serviceType)); } if (implementationInstance == null) { throw new ArgumentNullException(nameof(implementationInstance)); } var registerConfiguration = DependencyRegistrationFactory.ForInstance(serviceType, implementationInstance); return(RegisterRegistration(dependencyRegister, registerConfiguration)); }
/// <summary> /// 注册程序集中使实现特定接口或基类的类型作为依赖服务 /// </summary> /// <exception cref="ArgumentNullException"></exception> public static IEnumerableRegistration RegisterAssembly(this IDependencyRegister dependencyRegister, Type baseType, params Assembly[] assemblys) { if (baseType == null) { throw new ArgumentNullException(nameof(baseType)); } if (assemblys == null) { throw new ArgumentNullException(nameof(assemblys)); } var enumerableConfiguration = DependencyRegistrationFactory.ForAssembly(assemblys, baseType); return(RegisterCollection(dependencyRegister, enumerableConfiguration)); }
/// <summary> /// 注册程序集中使用特定命名约定的类型作为依赖服务 /// </summary> /// <exception cref="ArgumentNullException"></exception> public static IEnumerableRegistration RegisterAssembly(this IDependencyRegister dependencyRegister, string name, params Assembly[] assemblys) { if (string.IsNullOrWhiteSpace(name)) { throw new ArgumentNullException(nameof(name)); } if (assemblys == null) { throw new ArgumentNullException(nameof(assemblys)); } var enumerableConfiguration = DependencyRegistrationFactory.ForAssembly(assemblys, name); return(RegisterCollection(dependencyRegister, enumerableConfiguration)); }
/// <summary> /// 注册类型和返回实现实例的委托为依赖服务 /// </summary> /// <exception cref="ArgumentNullException"></exception> public static ILifetimeRegistration <ILifetimeRegistration> RegisterDelegate <TImplementation>( this IDependencyRegister dependencyRegister, Type serviceType, Func <IDependencyResolver, TImplementation> implementationDelegate) where TImplementation : class { if (serviceType == null) { throw new ArgumentNullException(nameof(serviceType)); } if (implementationDelegate == null) { throw new ArgumentNullException(nameof(implementationDelegate)); } var registerConfiguration = DependencyRegistrationFactory.ForDelegate(serviceType, implementationDelegate); return((DependencyRegistration)RegisterRegistration(dependencyRegister, registerConfiguration)); }