依存関係がインスタンス化されていないときに、どのように(Unity DIを使用して)依存関係注入をデバッグしますか?依存関係を持つサービスクラスを考えると依存関係のインスタンス化に失敗したときのデバッグ方法
例:
public class FooService : IFooService
{
[Dependency]
public BarService BarService { get; set; }
[Dependency]
public AnotherService AnotherService { get; set; }
// other code fails because BarService and AnotherService are null
}
そしてGlobal.asax.csで
private void ConfigureIoC()
{
container
.ConfigureAutoRegistration()
.LoadAssembliesFrom(assemblyPaths)
.ExcludeSystemAssemblies()
.Include(If.Any, Then.Register())
.ApplyAutoRegistration();
var serviceLocator = new UnityServiceLocator(container);
ServiceLocator.SetLocatorProvider(() => serviceLocator);
}
(およびそれをIFooServiceもUnityがインスタンス化されるが、それは代わりに、コンストラクタ・インジェクションを使用しています作品):
public class FooController : Controller
{
private readonly IFooService _fooService;
public FooController(IFooService fooService)
{
_fooService = fooService;
}
}
どうすれば依存関係が失敗するのか確認できますインスタンス化する。例外は投げられていません(またはエルマが捕まえていない場合)。
質問タイトルに_C#、Debugging、Unity、dependency injection_などのものは含めないようにしてください。それがタグのためのものです。 –
私が通常このような場合に行うことは、自分のコードユニットをUnityの* source *プロジェクトにリンクして、Unityコードをステップ実行して、どのように問題が解決されているかを確認することです。 –