У меня есть некоторые функции, которые я включаю в свое приложение .NET, которое использует StructureMap. Я хочу зарегистрировать функции для двух целей.
- Отобразить текущее состояние all
IFeatures
на диагностической странице.
- Используйте определенные экземпляры в конструкторах сервисов, которые полагаются на определенные реализации
IFeature
Вот моя настройка. Мне интересно, правильно ли я это делаю? Есть ли лучший способ, которым я мог бы это сделать?
class HotNewFeature : IFeature { ... }
class ServiceThatUsesFeature
{
public ServiceThatUsesFeature(HotNewFeature hotNewFeature) { ... }
}
// Type registry setup
For().Singleton().Use();
For().Singleton().Add(c => c.GetInstance);
For().Singleton().Use());
// Get all instances on the diagnostics page:
IEnumerable features = ServiceLocator.Current.GetAllInstances();
Я ожидаю, что на диагностической странице features
в этом случае будет содержать IEnumerable
с одним элементом, экземпляр HotNewFeature
.