Je suis héritant ApiController et ci-dessous est ma méthode ExecuteAsync surchargée par l'injection de dépendance,Initialiser abstrait objet de classe en utilisant l'injection de dépendance
public abstract class BaseController : ApiController
{
private IMyService _myService;
public PersonModel person;
protected BaseController(IMyService myService)
{
_myService = myService;
}
public override Task<HttpResponseMessage> ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken)
{
_myService.Initialize(person);
}
}
Ceci est mon interface de service,
public interface IMyService
{
HttpResponseMessage Initialize(PersonModel person);
}
est ici la classe,
public class MyService : IMyService
{
public HttpResponseMessage Initialize(PersonModel person)
{
//Initializing person model from db
return new HttpResponseMessage(HttpStatusCode.OK);
}
}
Lorsque j'exécute cette méthode, objet personne dans le La classe BaseController est toujours nulle. Que dois-je changer pour initialiser l'objet dans la classe abstraite?
Je suppose que vous faites quelque chose comme 'person = new PersonModel()' dans 'Initialize'. Cela ne marchera pas du tout. Vous en aurez besoin pour * renvoyer * un modèle de personne, ou (une solution de contournement laide), utilisez 'ref'. – Rob
Quel cadre de dépendance utilisez-vous? – ArunGeorge
@ArunGeorge Autofac – dev999