私のWeb APIプロジェクトには単純なインジェクタを使用しています。私はそれがインスタンス化するためにセッショントークンを必要とするサービスを持っています。ランタイムデータとの依存関係を解決するための依存性注入
public class CustomerService
{
public CustomerService(Auth auth, IRepositoryFactory repositoryFactory)
{
// make post call to another web api for validation
SomeWebApiCallToValidateAuth.vaildate(auth);
}
}
このサービスでは、認証トークンとrepositoryFactoryが必要です。私はそれが(httpのWeb要求から来る)authパラメータを注入し、コンテナに登録された特定の実装されたthatsを持つリポジトリファクトリを解決するために同時にできるようにします。
しかし、私はこれを簡単なインジェクタに登録する方法やその周りに道があるかどうかはわかりません。どんな助けも素晴らしいだろう。ありがとう。
なぜこのサービスの工場もありませんか?そこにリポジトリファクトリを注入し、ランタイムデータを含むメソッドを呼び出します。他の選択肢は、懸念の分離を検査することです。その質問には十分な情報がありませんので、私はその方向であなたを指摘することはできません。 – krillgar
サービスでは、トークンをパラメータとして取得するメソッドが必要です。現在のアプローチでは、検証が失敗し、制御フロー全体が壊れると、オブジェクトの初期化は失敗します。あなたがまだこのアプローチを進めたいのであれば、DIコンテナがそのトークンを読み込んでサービスを初期化するようにトークンをいくつかの場所に置く必要があります。どのDIコンテナにそのサポートがあるかわからない –