2017-07-14 164 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

回答