public IExceptionPolicyGroup Provide() { var hBuilder = new DefaultPolicyDefinitionBuilderProxy <TSrc>(); var nBuilder = new RegularPolicyDefinitionBuilderProxy <TSrc>(); var defaultPolicyDefinition = Provide(hBuilder); var defaultPolicy = defaultPolicyDefinition.CreatePolicy(); var policyDict = new Dictionary <string, IExceptionPolicy> { { defaultPolicyDefinition.Context, defaultPolicy } }; var regularPolicyDefinitions = Provide(nBuilder) ?? Enumerable.Empty <CompletePolicyDefinition <TSrc, TDst> >(); foreach (var regularPolicyDefinition in regularPolicyDefinitions) { var regularPolicy = regularPolicyDefinition.CreatePolicy(); policyDict.Add(regularPolicyDefinition.Context, regularPolicy); } return (new ExceptionPolicyGroup <TSrc>( new ReadOnlyDictionary <string, IExceptionPolicy>(policyDict))); }
/// <inheritdoc /> protected override IEnumerable <CompletePolicyDefinition <AppleException, PearException> > Provide(RegularPolicyDefinitionBuilderProxy <AppleException> builderProxy) { yield return(builderProxy.SetTargetForContext <PearException>("red wine") .StartAndComplete(c => c.Set <Handler3>()) .WithoutTerminator()); }
Provide(RegularPolicyDefinitionBuilderProxy <TSrc> builderProxy);