したがって、制御の反転はあいまいな説明であるため、依存性注入が新しい定義になりました。これは非常に強力なソリューションであり、これに遭遇したことのない人にとっては混乱を招く可能性があります。
それで、ヘッドライトの鹿にならないように、私は読み上げました。いくつかの素晴らしい本とオンライン投稿を見つけました。しかし、すべての素晴らしいことと同様に、答えよりも多くの疑問が生じました。
問題は、未知のプロジェクトから変数を吸収して、プロジェクトに導入された後に実装されることです。
ソリューション:
public interface ISiteParameter
{
Guid CustomerId { get; set; }
string FirstName { get; set; }
string LastName { get; set; }
string Phone { get; set; }
}
私のインジェクター:
public interface IInjectSiteParameter
{
void InjectSite(ISiteParameter dependant);
}
次に、これを作成しました:
public class SiteContent : IInjectSiteParameter
{
private ISiteParameter _dependent;
#region Interface Member:
public void InjectSite(ISiteParameter dependant)
{
_dependant = dependant;
}
#endregion
}
次に、共有参照を使用して Fed Variablesとして実装するために、次のように実装するクラスを作成しました。
public class SiteParameters : ISiteParameter
{
public Guid Customer Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Phone { get; set; }
}
これでSiteParameters Class
、他のプロジェクトによって参照されます。これにより、いつでもどこでもこれらのプロパティを実際に呼び出すことができます。
ISiteParameter i = new ISiteParameter();
MessageBox.Show(i.Guid + i.FirstName + i.LastName + i.Phone);
それが実装でしたが、私の質問はこれです...いつ使用しますか?
- コンストラクター インジェクション
- セッター注入
- インターフェース注入
どちらか一方をいつ使用しますか?そして、私が言及したタスクについては、他のプロジェクトに加えられた変更を調整するために、このような難しいタスクを実装する必要がありますか?
思考過程で曲線から外れましたか?