Asp.net mvc Autofac Azure移动服务集成问题
我得到“…确保控制器有一个无参数的公共构造函数autofac…” 我的控制器:Asp.net mvc Autofac Azure移动服务集成问题,asp.net-mvc,autofac,asp.net-web-api2,azure-mobile-services,Asp.net Mvc,Autofac,Asp.net Web Api2,Azure Mobile Services,我得到“…确保控制器有一个无参数的公共构造函数autofac…” 我的控制器: public class AccountController : ApiController { private IAccountService _accountService; public AccountController(IAccountService accountService) { _accountService = accountService; }
public class AccountController : ApiController
{
private IAccountService _accountService;
public AccountController(IAccountService accountService)
{
_accountService = accountService;
}
...
}
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);
}
我的自动传真配置:
public class AccountController : ApiController
{
private IAccountService _accountService;
public AccountController(IAccountService accountService)
{
_accountService = accountService;
}
...
}
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);
}
我自己修好了。事实上,问题在于项目是Azure移动服务。 这是我第一次使用它,我已经像以前那样为WebApi配置了它。但正如我上次在谷歌上搜索这个基于OWIN的项目类型后所理解的那样。 这是一篇关于以下方面的好文章: 所以它应该是这样的:
ConfigOptions options = new ConfigOptions();
ConfigBuilder builder = new ConfigBuilder(options, (httpConfig, autofac) =>
{
autofac.RegisterInstance(new MyService()).As<IMyService>();
});
HttpConfiguration config = ServiceConfig.Initialize(builder);
ConfigOptions=newconfigoptions();
ConfigBuilder=新的ConfigBuilder(选项,(httpConfig,autofac)=>
{
autofac.RegisterInstance(new MyService()).As();
});
HttpConfiguration config=ServiceConfig.Initialize(生成器);
您是否安装了Web API集成“Autofac.WebApi”nuget软件包?@MilenPavlov是的,当然@MilenPavlov我已经添加了内部异常消息,可能会有帮助:)您可以在此处显示AccountService的构造函数吗?您可以尝试此行以注册控制器生成器。RegisterApicController(typeof(AccountController).Assembly); ?