2017-07-14 165 views
-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类仍然为空。我应该改变什么来初始化抽象类中的对象?

+2

我猜你正在'Initialize'里面'person = new PersonModel()'的行做些什么。这根本不起作用。你需要它来*返回一个人模型,或者(一个丑陋的解决方法),使用'ref'。 – Rob

+0

你正在使用哪个依赖框架? – ArunGeorge

+0

@ArunGeorge Autofac – dev999

回答