コード例 #1
0
 public static IEnumerable <TPlugin> ThatAppliesTo <TPlugin, TPluginContext, TInstanceContext>(
     this ConditionalPlugins <TPlugin, TPluginContext> plugins,
     IEnumerable <TPlugin> instances, TPluginContext pluginContext, TInstanceContext instanceContext)
     where TPlugin : IConditional <TInstanceContext>
 {
     return(plugins.ThatApply(instances, pluginContext, x => x.AppliesTo(instanceContext)));
 }
コード例 #2
0
 private static IEnumerable <TPlugin> ThatApplyOrDefault <TPlugin, TPluginContext>(
     this ConditionalPlugins <TPlugin, TPluginContext> plugins,
     IEnumerable <TPlugin> instances, TPluginContext pluginContext, Func <TPlugin, bool> predicate)
 {
     return(plugins.ThatApply(instances, pluginContext, predicate).ToList()
            .AnyOrDefault(() => plugins.GetDefaultInstance(instances)));
 }