Я загрузил пример проекта LinqToLdap GIT, который использует SimpleInjector в качестве контейнера Inversion of Control и перевел код на замок Windsor. Мой конфиг код выглядит следующим образом:
Использование Castle Windsor с LinqToLDAP
container.Register(Component.For<ILdapConfiguration>()
.UsingFactoryMethod(() =>
{
var config = new LdapConfiguration()
.AddMapping(new UserImageMapping())
.AddMapping(new UserMapping());
config.ConfigurePooledFactory("my.ad.server");
return config;
}));
и контекст Справочник зарегистрирован как:
container.Register(Component.For<IDirectoryContext>()
.UsingFactoryMethod(() => new DirectoryContext(container.Resolve<ILdapConfiguration>())).LifestyleSingleton());
Этот вопрос я сталкивался в при использовании DirectoryContext в запросе такие как:
var photo = context.Query<UserPhoto>().FirstOrDefault(u => u.EmployeeId == userQuery.Id);
В объекте контекста есть список поставщиков, связанных с ним, и количество этих поставщиков постоянно увеличивается с каждым запросом. Настолько, что есть сотни после нескольких минут использования. Я предполагаю, что это связано с правильным удалением контекста, но когда я явно избавляюсь от контекста, последующие запросы терпят неудачу, так как контекст расположен и по какой-то причине новый не создается. Может ли кто-нибудь помочь?