コンソールアプリケーションでDIを使う
概要
2019/07/19に弊社LT会で発表しました。 テーマはC#でした。
資料
当日受けた質問
言語やフレームワークのバージョンは?
資料上のコードは、.NET Core 2.1(AWS Lambdaが対応している最新バージョン)、C# 7.3で動作確認しています。
コンソールアプリケーションで Scoped
を指定した場合、どういうライフタイムになるのか?
考えたこともありませんでした……。
おそらく、Transient と同じになると思います。(訂正: Transient
ではなく Singleton
ですね、失礼しました。)
AWS Lambdaなどで動かす場合も基本的に1リクエスト=1プロセスと思われますが、内部でどうプロセス管理されているのかをちゃんと調べたわけではないのではっきりとは答えられません。個人的には、コンソールアプリケーションの場合は Singleton
または Transient
のいずれかで構成すると管理しやすいと思っています。
所感
社外向けのLT会で登壇したのは初めてだったので、とても緊張しました。
リハ時に時間を大幅に超過したこと、また緊張もあって、かなり早口になってしまったと思います。
余裕を持って堂々と話せるようになりたい。