1

インターフェイス「ISetting」があります。いくつかの自動ゲッター/セッターを持ついくつかのプロパティでこの空のインターフェイスを実装する POCO クラスがあります。

SimpleInjector が要求された (明示的に登録されていない) すべての型を検査し、このインターフェイスを実装している場合は、提供するメソッドで解決したいと考えています。

これにより、(コンストラクターから) デフォルト値を使用して POCO オブジェクトを自分自身にバインドするオプションを使用して、設定に POCO オブジェクトを使用できます。これは、単体テストだけでなく、設定をオフにする (デフォルト値を使用する) のにも適しています。

これは可能で、アプローチは何ですか?

前もって感謝します!

4

1 に答える 1

1

これは、ResolveUnregisteredTypeイベントを使用して利用できます。例:

container.ResolveUnregisteredType += (s, e) =>
{
    Type type = e.UnregisteredType;

    if (typeof(ISetting).IsAssignableFrom(type))
    {
        // If you need raw performance, there is also
        // an overload that takes in an Expression.
        e.Register(() =>
        {
            // Do something useful here. Example:
            return Activator.CreateInstance(type);
        });
    }
};
于 2013-01-27T15:31:48.200 に答える