我正在尝试在我的消息处理程序中使用Rebus事务上下文。 我已阅读文档here,并看过示例here,但我不知道温莎的工作原理。
有人可以举例说明在没有任何IOC容器的情况下使用IT TransactionContext而不了解其工作方式吗?
由于
答案 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。