Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Bind<IUnitOfWork>().To<UnitOfWork>();
- Bind<ISomeService>().To<SomeService>();
- class UnitOfWork : IUnitOfWork, IDisposable
- {
- public Dispose(){}
- }
- // Это что то вроде GodObject (прим. фасад, методы которого, дергают кнопочки из WinForms, существует пока существует форма, )
- // IDisposable не реализует
- class SomeService : ISomeService
- {
- IUnitOfWork readonly _uow;
- public SomeService(IUnitOfWork uow)
- {
- this._uow = uow;
- }
- public void Method1()
- {
- this._uow.SomeAction1();
- }
- public void Method2()
- {
- this._uow.SomeAction2();
- }
- }
- Bind<IUnitOfWork>().To<UnitOfWork>(); // Здесь можно обозначить Scope, если реализации репозиториев зависят
- // от DbContext, и нужно сохранять один экземпляр на весь UnitOfWork
- // прим: Bind<IUnitOfWork>().To<UnitOfWork>().DefinesNamedScope("SingleDbContextScope");
- // а DbContext биндить так: Bind<SomeDbContext>().ToSelf().InNamedScope("SingleDbContextScope");
- Bind<IUnitOfWorkFactory>().ToFactory();
- Bind<ISomeService>().To<SomeService>();
- // Это что то вроде GodObject (прим. фасад, методы которого, дергают кнопочки из WinForms, существует пока существует форма, )
- class SomeService : ISomeService
- {
- readonly IUnitOfWorkFactory _uowFuctory;
- public SomeService(IUnitOfWorkFactory uowFuctory)
- {
- this._uowFuctory = uowFuctory;
- }
- public void Method1()
- {
- using(var uow = _uowFuctory.Create())
- {
- this.uow.SomeAction1();
- }
- }
- public void Method2()
- {
- using(var uow = _uowFuctory.Create())
- {
- this.uow.SomeAction2();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement