У меня есть несколько репозиториев, которые наследуются от базового класса Repository. В настоящее время я регистрации внедрений в памяти со структурой карты, как это (и это работает прекрасно):StructureMap Open Generics и CacheBy Singleton
ForRequestedType<Repository<Timeslot>>()
.TheDefaultIsConcreteType<InMemoryRepository<Timeslot>>()
.AsSingletons();
ForRequestedType<Repository<Appointment>>()
.TheDefaultIsConcreteType<InMemoryRepository<Appointment>>()
.AsSingletons();
Я думал, что неплохо было бы использовать поддержку StructureMap в для Open Дженерики зарегистрировать все эти (их число растет), поэтому, когда я добавляю новый репозиторий, мне не нужно будет обновлять ServiceRegistry.
Я попытался это:
ForRequestedType(typeof (Repository<>))
.CacheBy(InstanceScope.Singleton)
.TheDefaultIsConcreteType(typeof (InMemoryRepository<>));
не кажется, что работает. Он не генерирует исключение, но он действует так, как репозитории не являются одиночными. Все, что им добавлено, не сохраняется во время жизненного цикла приложения.
Возможно ли зарегистрировать открытый общий файл и реализовать кэширование с помощью одноэлементной области? Это приложение ASP.NET MVC, и я просто хочу, чтобы репозитории работали до перезапуска приложения.
Lance вы Выяснить решение этой проблемы? – ahsteele
Нет, просто продолжал добавлять в конфигурацию. –