1

既存の MVC3 プロジェクトがあり、DI に Autofac を使用しています。

RESTful サービスを提供するために、ServiceStack を使用する予定です。autofac を初期化する既存の Bootstrapper.cs を ServiceStack で使用するにはどうすればよいですか?

既存の Bootrapper.cs:

 public static class Bootstrapper
    {
        public static ContainerBuilder builder;
        public static void Initialise()
        {
            builder = new ContainerBuilder();
            builder.RegisterControllers(typeof(MvcApplication).Assembly);
            var container = builder.Build();
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        }
    }
4

1 に答える 1

1

ServiceStack のドキュメントでは、ここに例を示します。解決を Autofac に転送するアダプターを実装するだけです。

アップデート:

サービスを登録した後、コンテナー インスタンスを返すことができます。

public static IContainer Initialise() 
{ 
    builder = new ContainerBuilder(); 
    builder.RegisterControllers(typeof(MvcApplication).Assembly); 
    Register types here builder.Register(x => new FormsAuthWrapper()).As<IFormsAuthentication>();
    builder.Register(x => new ServiceDbContext()).As<DbContext>().As<ServiceDbContext>().InstancePerHttpReques‌​t();
    var container = builder.Build(); 
    DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); 
    return container;
} 

その後、このインスタンスを使用してアダプターを作成できます。

IContainerAdapter adapter = new AutofacIocAdapter(Bootstrapper.Initialise());
container.Adapter = adapter;
于 2013-04-23T23:12:35.830 に答える