0

我下载了使用 SimpleInjector 作为控制反转容器的 LinqToLdap GIT 示例项目,并将代码翻译到 Castle Windsor。我的配置代码如下所示:

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);


上下文对象有一个与之关联的提供者列表,并且每次进行查询时这些提供者的数量都会不断增加。如此之多,以至于使用几分钟后就有数百个。我想这与正确处理上下文有关,但是当我明确处理上下文时,后续查询会失败,因为上下文已被处理,并且由于某种原因没有创建新的上下文。任何人都可以帮忙吗?

4

1 回答 1

0

原来是 LinqToLDAP 代码中的一个小错误。开发人员已确定问题,将在下一个版本中修复!(R 3.3.2)

于 2014-11-25T15:12:11.270 回答