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 CompletePolicyDefinition <AppleException, PearException> Provide(DefaultPolicyDefinitionBuilderProxy <AppleException> builder) { return(builder.SetTargetForDefaultContext <PearException>() .Start <CherryException>(c => c.Set <Handler1>()) .ThenComplete(c => c.Set <Handler2>()) .WithoutTerminator() ); }
Provide(DefaultPolicyDefinitionBuilderProxy <TSrc> builder);