-1
我继承ApiController及以下初始化抽象类的对象是我重写ExecuteAsync方法依赖注入,使用依赖注入
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);
}
}
这是我的服务接口,
public interface IMyService
{
HttpResponseMessage Initialize(PersonModel person);
}
这里是类,
public class MyService : IMyService
{
public HttpResponseMessage Initialize(PersonModel person)
{
//Initializing person model from db
return new HttpResponseMessage(HttpStatusCode.OK);
}
}
当我执行这个方法时,person对象在BaseController类仍然为空。我应该改变什么来初始化抽象类中的对象?
我猜你正在'Initialize'里面'person = new PersonModel()'的行做些什么。这根本不起作用。你需要它来*返回一个人模型,或者(一个丑陋的解决方法),使用'ref'。 – Rob
你正在使用哪个依赖框架? – ArunGeorge
@ArunGeorge Autofac – dev999