Exemplo n.º 1
0
 /// <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());
 }
Exemplo n.º 3
0
 /// <summary>
 /// 在发现扩展时执行。
 /// </summary>
 /// <param name="context">扩展描述符条目过滤器上下文。</param>
 public void OnDiscovery(ExtensionDescriptorEntryFilterContext context)
 {
     context.Valid = context.Entry.Id == "Rabbit.Test";
 }