java声明公共构造函数_确保控制器具有无参数的公共构造函数错误
我已經(jīng)按照這個(gè)tutorial進(jìn)行了很好的工作,直到我修改了 DbContext 以獲得額外的構(gòu)造函數(shù) . 我現(xiàn)在遇到了解決方案的問(wèn)題,不知道如何解決這個(gè)問(wèn)題 . 是否有一種簡(jiǎn)單的方法可以強(qiáng)制它 grab 無(wú)參數(shù)構(gòu)造函數(shù),或者我接近這個(gè)錯(cuò)誤?
DbContext 有兩個(gè)構(gòu)造函數(shù):
public class DashboardDbContext : DbContext
{
public DashboardDbContext() : base("DefaultConnection") { }
public DashboardDbContext(DbConnection dbConnection, bool owns)
: base(dbConnection, owns) { }
}
SiteController 構(gòu)造函數(shù):
private readonly IDashboardRepository _repo;
public SiteController(IDashboardRepository repo)
{
_repo = repo;
}
庫(kù):
DashboardDbContext _context;
public DashboardRepository(DashboardDbContext context)
{
_context = context;
}
UnityResolver 代碼:
public class UnityResolver : IDependencyResolver
{
private readonly IUnityContainer _container;
public UnityResolver(IUnityContainer container)
{
_container = container;
}
public object GetService(Type serviceType)
{
try
{
return _container.Resolve(serviceType);
}
catch (ResolutionFailedException)
{
return null;
}
}
public IEnumerable GetServices(Type serviceType)
{
try
{
return _container.ResolveAll(serviceType);
}
catch (ResolutionFailedException)
{
return new List();
}
}
public IDependencyScope BeginScope()
{
var child = _container.CreateChildContainer();
return new UnityResolver(child);
}
public void Dispose()
{
_container.Dispose();
}
}
WebApiConfig:
var container = new UnityContainer();
container.RegisterType(new HierarchicalLifetimeManager());
config.DependencyResolver = new UnityResolver(container);
WebApi調(diào)用出錯(cuò):
System.InvalidOperationException:嘗試創(chuàng)建“SiteController”類型的控制器時(shí)發(fā)生錯(cuò)誤 . 確保控制器具有無(wú)參數(shù)的公共構(gòu)造函數(shù) .
at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)
at System.Web.Http.Controllers.HttpControllerDescriptor.CreateController(HttpRequestMessage request)
at System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__0.MoveNext()
InnerException:System.ArgumentException:Type'Dashboard.Web.Controllers.SiteController'沒(méi)有默認(rèn)構(gòu)造函數(shù) .
at System.Linq.Expressions.Expression.New(Type type)
at System.Web.Http.Internal.TypeActivator.Create[TBase](Type instanceType)
at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.GetInstanceOrActivator(HttpRequestMessage request, Type controllerType, Func`1& activator)
at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)
該教程非常棒,并且在我添加第二個(gè)構(gòu)造函數(shù)之前一直很好用 .
總結(jié)
以上是生活随笔為你收集整理的java声明公共构造函数_确保控制器具有无参数的公共构造函数错误的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 统一寻址
- 下一篇: CUDA Libraries简介