1

我目前正在将一些工作 Ninject 代码迁移到 Microsoft Unity,并且有点卡在这个特定的转换上。

Bind<MyDbContext>().ToSelf().InRequestScope().WithConstructorArgument("connectionString", configurationService.MySqlConnectionString);
Bind<IUnitOfWork>().ToMethod(ctx => ctx.Kernel.Get<MyDbContext>());
Bind<DbContext>().ToMethod(ctx => ctx.Kernel.Get<MyDbContext>());

在提供此代码的 Unity 3.0 版本时,我们将不胜感激。

4

1 回答 1

3

假设您使用的是Unity.MVC4NuGet(它将为您注册一个自定义 DependencyResolver):

container.RegisterType<IUnitOfWork, MyDbContext>(
    new HierarchicalLifetimeManager(),
    new InjectionFactory(
        c => new MyDbContext(configurationService.MySqlConnectionString)
    )
);
container.RegisterType<DbContext, MyDbContext>(
    new HierarchicalLifetimeManager()
);
于 2013-05-29T16:13:17.220 回答