依存性注入の概念を理解しようとしています。以下は、デバッグしようとしている例です。ここで、彼のコンストラクターに依存関係を注入した Customer クラスを作成しました。メソッドを呼び出すと、エラーが発生し、キーワードを使用しthis.Iorder.GetOrderDetails();
てメソッドを呼び出すオブジェクトを作成するように求められます。この呼び出しを別のメソッドに移動し、そのメソッドを Index Method で呼び出すと、機能します。Index
NullReferenceException
new
this.Iorder.GetOrderDetails();
GetCutomerDetails()
質問this.Iorder.GetOrderDetails()
: メソッド呼び出しがメソッドで機能しない Index
理由と、メソッドで機能する理由を理解できませんGetCutomerDetails()
public interface IorderDetails
{
void GetOrderDetails();
}
public class CustomerModel : IorderDetails
{
public void GetOrderDetails() {}
}
コントローラ:
public class CustomerController: Controller
{
private IorderDetails Iorder;
//DI constructor Injecting OrderDetails object
CustomerController(IorderDetails iorderObj)
{
if (iorderObj == null)
throw new ArgumentNullException("orderObj should not be null");
this.Iorder = iorderObj;
}
//Default constructor
public CustomerController() { }
public ActionResult Index()
{
CustomerController objCustomer = new CustomerController(new CustomerModel());
objCustomer.GetCutomerDetails();
//Commented GetOrderDetails() method
//this.Iorder.GetOrderDetails();
return View();
}
public ActionResult GetCutomerDetails()
{
this.Iorder.GetOrderDetails();
return View();
}
}