An error occurred when trying to create a controller of type 'AlbumsController'. Make sure that the controller has a parameterless public constructor.
By any
chance if you see below error, please use below resolving instruction to overcome.
An error occurred when trying to create a
controller of type 'AlbumsController'. Make sure that the controller has a
parameterless public constructor.
System.InvalidOperationException
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.<SendAsync>d__0.MoveNext()
Type 'AlbumsController' does not have a default
constructor
How to resolve
Nothing
serious you just missed to write couple lines of code. The real cause is that
you are trying to use Unity's auto-wiring capabilities to create the DbContext.
DbContext is a special type that shouldn't be auto-wired. It is a framework
type and you should therefore fallback to registering it using a factory
delegate:
unity.RegisterType<AlbumsController>();
unity.RegisterType<IAlbumRepository,
AlbumRepository>(new HierarchicalLifetimeManager());
This
code generally sits into UnityConfig.cs file, but this depends on your solution
completely.
Hope
this helps.
Comments
Post a Comment