■ 実装例
ReciptEntity.cs
public class ReciptEntity
{
public string no { get; set; }
public string name { get; set; }
public string price { get; set; }
public string tax { get; set; }
public string priceWithoutTax { get; set; }
}
using Seasar.Quill.Attrs;
...
[Implementation(typeof(ReciptDao))]
public interface IReciptDao
{
ReciptEntity GetReciptEntity();
}
ReciptDao.cs
using Seasar.Quill.Attrs;
...
public class ReciptDao : IReciptDao
{
public ReciptEntity GetReciptEntity()
{
ReciptEntity entity = new ReciptEntity();
entity.no = "1";
entity.name = "Mike";
entity.price = "10500";
entity.tax = "5";
entity.priceWithoutTax = "10000";
return entity;
}
}
IReciptLogic.cs(インターフェイス)
using Seasar.Quill.Attrs;
...
[Implementation(typeof(ReciptDao))]
public interface IReciptDao
{
ReciptEntity GetReciptEntity();
}
ReciptLogic.cs
using Seasar.Quill.Attrs;
...
public class ReciptLogic : IReciptLogic
{
public IReciptDao dao;
public string GetName()
{
ReciptEntity ent = dao.GetReciptEntity();
return ent.name;
}
}
呼び出し部分の実装例(Form1.cs)
using Seasar.Quill;
...
public Form1()
{
InitializeComponent();
// DIを行う
QuillInjector.GetInstance().Inject(this); // ★追記(ポイント:コンストラクタ内に記述)★
}
...
public IReciptLogic reciptLogic; // ★Class内部に記述★
...
private void button3_Click(object sender, EventArgs e)
{
this.label1.Text = reciptLogic.GetName(); // ★呼び出し例★
}