Autofac Azure 移动服务集成问题

Autofac Azure Mobile Service integration issue

我得到'..确保控制器有一个无参数的 public 构造函数 autofac..'

我的控制器:

public class AccountController : ApiController
{
    private IAccountService _accountService;

    public AccountController(IAccountService accountService)
    {
        _accountService = accountService;
    }
    ...
}

我的autofac配置:

protected void Application_Start()
{
    var builder = new ContainerBuilder();

    var config = GlobalConfiguration.Configuration;
    builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
    builder.RegisterType<AccountService>().As<IAccountService>().InstancePerRequest();
    var container = builder.Build();

    config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
}

我的代码有什么问题?

完整错误信息:

Exception=System.InvalidOperationException: An error occurred when trying to create a controller of type 'AccountController'. Make sure that the controller has a parameterless public constructor. ---> Autofac.Core.DependencyResolutionException: None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'MyProj.Api.Controllers.AccountController' can be invoked with the available services and parameters:
Cannot resolve parameter 'MyProj.Engine.Services.Interfaces.IAccountService accountService' of constructor 'Void .ctor(MyProj.Engine.Services.Interfaces.IAccountService)'.

自己修好了。实际上问题是该项目是 Azure 移动服务。 这是我第一次使用它,我已经像以前为 WebApi 一样配置它。但正如我在上次谷歌搜索基于 OWIN 的项目类型后所理解的那样。 这是一篇关于:http://blogs.msdn.com/b/azuremobile/archive/2014/04/19/autofac-and-azure-mobile-services-net-backend.aspx

的好文章

所以应该是这样的:

 ConfigOptions options = new ConfigOptions();

 ConfigBuilder builder = new ConfigBuilder(options, (httpConfig, autofac) =>
 {
         autofac.RegisterInstance(new MyService()).As<IMyService>();
 });

 HttpConfiguration config = ServiceConfig.Initialize(builder);