C#での依存性注入の方法は何ですか?
C#でよく使われる依存性注入方法は次のとおりです:
- コンストラクタインジェクション:クラスのコンストラクターで依存オブジェクトを渡す。
public class MyClass
{
private readonly IDependency _dependency;
public MyClass(IDependency dependency)
{
_dependency = dependency;
}
// ...
}
- プロパティインジェクション:依存オブジェクトをプロパティ経由で注入する。
public class MyClass
{
public IDependency Dependency { get; set; }
// ...
}
- メソッドインジェクション:依存オブジェクトをメソッドを使って注入する方法。
public class MyClass
{
public void SetDependency(IDependency dependency)
{
// ...
}
// ...
}
- インタフェースインジェクション:依存オブジェクトを注入するために特定のインタフェースを実装します。
public class MyClass : IDependencyInjection
{
public void SetDependency(IDependency dependency)
{
// ...
}
// ...
}
- サービスロケータ:依存オブジェクトを解決するために中央集権化されたコンテナを使用します。
public class MyClass
{
private readonly IDependency _dependency;
public MyClass()
{
_dependency = ServiceLocator.Resolve<IDependency>();
}
// ...
}
注意:上記は一般的な依存性注入方法のいくつかですが、実際のアプリケーションでは異なる方法を組み合わせて特定の要件を満たすことができます。さらに、Autofac、Unity、Ninjectなどのサードパーティの依存性注入コンテナを使用して、依存性注入のプロセスを簡略化することもできます。