/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/MassTransit/Courier/FactoryMethodActivityFactory.cs
38 строк
1 KB
Chris Patterson
Added IRoutingSlipBuilder, which is now registered in the container, so that a routing slip can be built and executed from the Abstractions assembly only.
18 фев 2022, 00:54
18 фев 2022, 00:54
e2d61b6
Код
Авторство
О чём код?
namespace MassTransit.Courier { using System; using System.Threading.Tasks; public class FactoryMethodActivityFactory<TActivity, TArguments, TLog> : IActivityFactory<TActivity, TArguments, TLog> where TActivity : class, IExecuteActivity<TArguments>, ICompensateActivity<TLog> where TArguments : class where TLog : class { readonly ICompensateActivityFactory<TActivity, TLog> _compensateFactory; readonly IExecuteActivityFactory<TActivity, TArguments> _executeFactory; public FactoryMethodActivityFactory(Func<TArguments, TActivity> executeFactory, Func<TLog, TActivity> compensateFactory) { _executeFactory = new FactoryMethodExecuteActivityFactory<TActivity, TArguments>(executeFactory); _compensateFactory = new FactoryMethodCompensateActivityFactory<TActivity, TLog>(compensateFactory); } public Task Execute(ExecuteContext<TArguments> context, IPipe<ExecuteActivityContext<TActivity, TArguments>> next) { return _executeFactory.Execute(context, next); } public Task Compensate(CompensateContext<TLog> context, IPipe<CompensateActivityContext<TActivity, TLog>> next) { return _compensateFactory.Compensate(context, next); } public void Probe(ProbeContext context) { context.CreateScope("factoryMethod"); } } }