在消息处理程序中使用rebus TransactionContext

时间:2017-04-18 08:27:11

标签: c# rebus message-handlers

我正在尝试在我的消息处理程序中使用Rebus事务上下文。 我已阅读文档here,并看过示例here,但我不知道温莎的工作原理。

有人可以举例说明在没有任何IOC容器的情况下使用IT TransactionContext而不了解其工作方式吗?

由于

1 个答案:

答案 0 :(得分:1)

我建议你看看Rebus.UnitOfWork软件包,因为它提供了一个稍高级别的API来实现自定义工作单元 - 无论是否有IoC容器。

使用Rebus.UnitOfWork,您可以这样做:

Configure.With(...)
    .(...)
    .Options(o => {
        o.EnableUnitOfWork(Create, Commit, RollBack, Cleanup);
    })
    .Start();

//....

static MyCustomUnitOfWork Create() => new MyCustomUnitOfWork();

static void Commit(MyCustomUnitOfWork uow) => uow.Commit();

static void RollBack(MyCustomUnitOfWork uow) => uow.RollBack();

static void Cleanup(MyCustomUnitOfWork uow) => uow.Dispose();

其中MyCustomUnitOfWork可以是您想要的任何内容,例如一个创建EF数据库上下文并调用SaveChanges及其上的东西的类。

您可以在the wiki page about Unit Of Work上阅读更多内容,或使用正在运行的代码直接转到the sample that demonstrates Rebus.UnitOfWork

相关问题