Как использовать griffin.mvccontrib.localization с Ninject

Я пытаюсь использовать MVC Contrib Localization в моем приложении Asp.net MVC, на данный момент он работает с файлами ресурсов, но я хочу использовать его с Sql Server,

Я проверяю этот учебник: http://www.codeproject.com/Articles/352583/Localization-in-ASP-NET-MVC-with-Griffin-MvcContri

но он использует Autofac в качестве контейнера IoC, который я не понимаю, кто-нибудь использовал его с Ninject? или кто-нибудь знает, как этот код Autofac может быть переведен в Ninject:

// Loads strings from repositories.
builder.RegisterType<RepositoryStringProvider>().AsImplementedInterfaces().InstancePerLifetimeScope();
builder.RegisterType<ViewLocalizer>().AsImplementedInterfaces().InstancePerLifetimeScope();

// Connection factory used by the SQL providers.
builder.RegisterInstance(new AdoNetConnectionFactory("DemoDb")).AsSelf();
builder.RegisterType<LocalizationDbContext>().AsImplementedInterfaces().InstancePerLifetimeScope();

// and the repositories
builder.RegisterType<SqlLocalizedTypesRepository>().AsImplementedInterfaces().InstancePerLifetimeScope();
builder.RegisterType<SqlLocalizedViewsRepository>().AsImplementedInterfaces().InstancePerLifetimeScope();

Заранее спасибо.

1 ответ

Я пытаюсь сделать то же самое в данный момент с пакетом Ninject.Web.MVC NuGet.

Я не уверен, что у Ninject есть что-то похожее на .AsImplementedInterfaces() однако вы все равно можете сами связать интерфейсы, если это не так, это просто больше ручной работы, глядя на классы Griffin.MvcContrib и какие интерфейсы они реализуют.

Один пример для добавления в метод RegisterServices NinjectWebCommon:

private static void RegisterServices(IKernel kernel)
{
    kernel.Bind<ILocalizedStringProvider>()
           .To<RepositoryStringProvider>().InRequestScope();
...
}  

InRequestScope Расширение ( https://github.com/ninject/Ninject.Web.Common/wiki/Inrequestscope) из того, что я прочитал, является наиболее близким к AutoFac. .InstancePerLifetimeScope() http://code.google.com/p/autofac/wiki/InstanceScope

Что касается .RegisterInstance(new AdoNetConnectionFactory("DemoDb")).AsSelf();

E сть .ToSelf() метод для Ninject, но я не совсем уверен, что эта линия делает пока сам.

Другие вопросы по тегам