Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

ログ出力方式 (lon4net) を NLogにリプレース。

詳細

コンパチ > ベースクラス2からDIする。」での実装を予定。

リプレース

  • 足回り(ライブラリ)をリプレースするだけで、設計自体は変更しない。
  • ただし、NLogの定義などを一気に揃える必要がある。

コンパチ

  • コンパチブルにするには、DI行うための設計変更が必要になる。
  • コレにより、log4netからNLogに、段階的に移行可能になる。

DIコンテナでは難しい。

  • DIだと、config処理をユーザ側に持たせる必要がある。
    (Program.csや、Setup.csに書かせるようなconfigをユーザ側に強いる)
  • 共通I/F
  • 下位スタックでDIされたLoggerを使用する場合、
    共通I/Fが無いならレイトバインドするしかない。
  • 共通I/Fがあれば、下位はインターフェイスのみ実装し、
    config用ライブラリも含め、実体を上位からDIすることもできるのだが。
  • log4netとNLogに共通のインターフェイスは無い。
    • 従って、コンパチの情報もない。
    • DIはユーザ・レイヤでのみ可能。

よくよく考えると、DIされたLoggerを、基盤側で使用している
ようなケースは無い(ASP.NET Coreでも無い)ですね...。

ベースクラス2からDIする。

ベースクラス2からDIすれば、なんとかなりそう。

  • Public(ライブラリ)側に、
    共通I/F(純粋仮想関数)を定義する。
  • Business(ベースクラス2)側に、
    • 共通I/Fを継承した、ManagerとLoggerを定義する。
    • Businessで初期化を行い、PublicにDIする。
  • Publicの共通I/F(純粋仮想関数)経由でログ出力する。

参考

マイクロソフト系技術情報 Wiki

OpenTouryoProject?/OpenTouryo?


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-08-04 (火) 01:42:43 (122d)