2

Asp.net MVC アプリケーションで MVC Contrib Localization を使用しようとしています。今のところ、リソース ファイルで動作していますが、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();

前もって感謝します。

4

1 に答える 1

0

現在、Ninject.Web.MVC NuGet パッケージで同じことをしようとしています。

Ninject に似たようなものがあるかどうか.AsImplementedInterfaces()はわかりませんが、そうでない場合でも自分でインターフェイスをバインドできます。Griffin.MvcContrib のクラスとそれらが実装するインターフェイスを見て、手作業が増えるだけです。

NinjectWebCommon RegisterServices メソッドに入れる 1 つの例は次のとおりです。

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

InRequestScope拡張機能 ( https://github.com/ninject/Ninject.Web.Common/wiki/Inrequestscope ) は、これまで読んだ内容から、AutoFac http://code.google.comに最も近いものです。.InstancePerLifetimeScope() /p/autofac/wiki/InstanceScope

はどうかと言うと.RegisterInstance(new AdoNetConnectionFactory("DemoDb")).AsSelf();

Ninject にはメソッドがありますが、.ToSelf()この行が何をしているのかはまだ完全にはわかりません。

于 2012-12-24T02:48:20.130 に答える