/// <summary> /// 可用的扩展。 /// </summary> /// <returns>扩展描述符条目集合。</returns> public IEnumerable <ExtensionDescriptorEntry> AvailableExtensions() { return(_cacheManager.Get("AvailableExtensions", ctx => _parallelCacheContext .RunInParallel(_folders, folder => folder.AvailableExtensions().Where(i => _extensionDescriptorFilters.All(f => { var context = new ExtensionDescriptorEntryFilterContext(i); f.OnDiscovery(context); return context.Valid; })).ToArray()) .SelectMany(entrys => entrys).ToArray())); }
/// <summary> /// 可用的扩展。 /// </summary> /// <returns>扩展描述符条目集合。</returns> public IEnumerable<ExtensionDescriptorEntry> AvailableExtensions() { return _cacheManager.Get("AvailableExtensions", ctx => _parallelCacheContext .RunInParallel(_folders, folder => folder.AvailableExtensions().Where(i => _extensionDescriptorFilters.All(f => { var context = new ExtensionDescriptorEntryFilterContext(i); f.OnDiscovery(context); return context.Valid; })).ToArray()) .SelectMany(entrys => entrys).ToArray()); }
/// <summary> /// 在发现扩展时执行。 /// </summary> /// <param name="context">扩展描述符条目过滤器上下文。</param> public void OnDiscovery(ExtensionDescriptorEntryFilterContext context) { context.Valid = context.Entry.Id == "Rabbit.Test"; }