/// <summary> /// Конструктор. /// </summary> /// <param name="module">Модуль.</param> /// <param name="filter">Фильтр запроса на модуль.</param> public StaticModuleProvider(T module, IStaticModuleQueryFilter filter = null) : base(GetSuspendAware(module), false) { if (module == null) { throw new ArgumentNullException(nameof(module)); } _module = module; _filter = filter; }
/// <summary> /// Зарегистрировать статический модуль. /// </summary> /// <typeparam name="T">Тип модуля.</typeparam> /// <typeparam name="TIntf">Тип интерфейса, который реализует модуль.</typeparam> /// <param name="collection">Коллекция.</param> /// <param name="module">Модуль.</param> /// <param name="filter">Фильтр модуля.</param> public static void RegisterModule <T, TIntf>(this IModuleCollection collection, T module, IStaticModuleQueryFilter filter = null) where T : IModule, TIntf { if (module == null) { throw new ArgumentNullException(nameof(module)); } collection.RegisterProvider(typeof(TIntf), new StaticModuleProvider <T, TIntf>(module, filter ?? module as IStaticModuleQueryFilter)); }
/// <summary> /// Зарегистрировать статический модуль. /// </summary> /// <typeparam name="T">Тип модуля.</typeparam> /// <typeparam name="TIntf">Тип интерфейса, который реализует модуль.</typeparam> /// <param name="collection">Коллекция.</param> /// <param name="filter">Фильтр модуля.</param> public static void RegisterModule <T, TIntf>(this IModuleCollection collection, IStaticModuleQueryFilter filter = null) where T : IModule, TIntf, new() { var module = new T(); collection.RegisterProvider(typeof(TIntf), new StaticModuleProvider <T, TIntf>(module, filter ?? module as IStaticModuleQueryFilter)); }