追記
VS2017 Previewで凄くいいなと思った機能を紹介したのですが id:neuecc さんに、それVS2017でできるよ?って言われた話です。
コンストラクタに指定したいプロパティやフィールドを選択してCtrl + .でコンストラクタ生成される機能があるらしい。やってみたら出来ました。知らなかった…。
選択しないといけないという点で、フィールドの定義が分断されてたり、このフィールドは初期化したいけど、これは初期化しないようにしたいというのはどうやるんだろう?そこはVS2017 Previewのほうが便利そう?
オリジナル
DIコンテナ使ってプログラム書くと、大体こんな風になりますよね?
class Consumer { private IService1 Service1 { get; } private IService2 Service2 { get; } }
そして、コンストラクタインジェクションするために引数をprivateな変数に格納するだけの作業が発生します。 個人的に、面白くないプログラミング作業のうちの1つです。
eclipseやNetBeansを何年も前に使ってた時には、フィールドからコンストラクタ生成とかいう機能があったのになぁ…とずっと思ってたけど、ついにVisual Studioにもこの機能が来ます!!
ということでクラスの適当なところでクイックフィックス(Ctrl + .)を表示させるとこんなのが出てきます。
上書きを生成するみたいなプレビュー品質っぽい翻訳もありますが気にしません。 今回は、この中のコンストラクタを生成するを選択します。するとこんなダイアログが出てきます!素敵!
OKをすると、こんな感じのコンストラクタが生成されます。
class Consumer { private IService1 Service1 { get; } private IService2 Service2 { get; } public Consumer(IService1 service1, IService2 service2) { this.Service1 = service1; this.Service2 = service2; } }
また1つVisual Studioが快適になりました。