0
データパラメータのみを持つサービスの登録は簡単です。SimpleInjector:データパラメータと依存関係を持つクラスの登録
string emailHost = "emailHost";
int emailPort = 25;
string emailFrom = "[email protected]";
container.Register<IEmailManager>(
() => new EmailManager(emailHost, emailPort, emailFrom),
Lifestyle.Singleton);
しかし、クラス/サービスは、データ偶然に、と注入されたサービスを持っている場合、私はそれをどのように行うのですか?登録したSmsNumberFormatter
をSmsManager
に登録するにはどうすればいいですか?まだctor経由でsms設定データを提供していますか?
string smsAccountSid = "sid";
string smsAuthToken = "token";
string smsFromNumber = "##########";
container.Register<ISmsNumberFormatter, SmsNumberFormatter>(
Lifestyle.Singleton);
container.Register<ISmsManager>(
() => new SmsManager(
new SmsNumberFormatter(), smsAccountSid, smsAuthToken, smsFromNumber),
Lifestyle.Singleton);
SimpleInjector:V 3.3.2.0
2番目のオプションに投票します。クリーナーだけでなく、[Diagnostic Services](https://simpleinjector.org/diagnostics)を使用してSimple Injectorがオブジェクトグラフの分析を継続できるようにします。 – Steven
詳細な対応をお寄せいただきありがとうございます。 – contactmatt
私は 'SmsManagerOptions'を不変で、readonlyのプロパティと必要な値を受け入れるコンストラクタで作成します。これは 'SmsManagerOptions'がfaulty状態で初期化されるのを防ぎます。 – Steven