带有NInject设计问题的UnitOfWork [英] UnitOfWork with NInject design issues

查看:86
本文介绍了带有NInject设计问题的UnitOfWork的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在DataAccess项目中有我的UnitOfWork类,并且要解决我的IUnitOfWork接口(与UnitOfWork类一起使用),我需要在Web项目中使用Ninject将IUnitOfWork接口与UnitOfWork类绑定.

I have my UnitOfWork class in DataAccess project and to resolve my IUnitOfWork interface (with UnitOfWork class), I need to use Ninject to Bind the IUnitOfWork interface with UnitOfWork class in my web project.

为此,我需要在Web项目中引用我的DataAccess项目(其中包含UnitOfWork类).这是明智的设计吗?我的意思是在网络项目中引用DataAccess似乎是一个坏主意&我从来没有那样做.

To do this I need to refer my DataAccess project (which contains UnitOfWork class) in the Web project. Is this good design wise? I mean referring DataAccess in the web project seems to be a bad idea & I never did that.

所以,请告诉我该怎么做?

So, please advise me on what to do?

推荐答案

如果您不愿意参考DataAccess项目(这不是大问题),则可以创建单独的项目(让我们称为ModuleProject),其中将包含NinjectModule. ModuleProject将同时引用DataAccess和定义了IUnitOfWork的项目.在您的Web项目中,您将引用ModuleProject并使用其类来注册模块.

If you are not comfortable having reference to DataAccess project (imho it is not a big issue) you can create separate project (let's call it ModuleProject) that will contain NinjectModules. ModuleProject will have references to both DataAccess and to project where IUnitOfWork is defined. In your web project you will have reference to ModuleProject and use its classes to register modules.

模块

public class NinjectConfiguration : NinjectModule
{
    public override void Load()
    {
        Bind<IUnitOfWork>().To<UnitOfWork>();
    }
}

网络项目中的注册

kernel.Load(new Mod.NinjectConfiguration());

有关模块的更多信息,请参见此处.

More information on modules here.

这篇关于带有NInject设计问题的UnitOfWork的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆