StructureMap を使用する .NET アプリケーションに含めるいくつかの機能トグルがあります。機能トグルを 2 つの目的で登録したいと考えています。
- 診断ページにすべて の現在の状態を表示します。
IFeatures
IFeature
特定の実装に依存するサービスのコンストラクターで特定のインスタンスを使用する
これが私のセットアップです。私が疑問に思っているのは、これを正しく行っているかということです。私がそれを行うことができるより良い方法はありますか?
class HotNewFeature : IFeature { ... }
class ServiceThatUsesFeature
{
public ServiceThatUsesFeature(HotNewFeature hotNewFeature) { ... }
}
// Type registry setup
For<HotNewFeature>().Singleton().Use<HotNewFeature>();
For<IFeature>().Singleton().Add(c => c.GetInstance<HotNewFeature>);
For<ServiceThatUsesFeature>().Singleton().Use<ServiceThatUsesFeature>());
// Get all instances on the diagnostics page:
IEnumerable<IFeature> features = ServiceLocator.Current.GetAllInstances<IFeature>();
features
この場合、診断ページにはIEnumerable
、 のインスタンスである単一の要素を持つ が含まれることが予想されますHotNewFeature
。