【问题标题】:Using SolrNet 4.0 alpha 1 or later with Autofac将 SolrNet 4.0 alpha 1 或更高版本与 Autofac 一起使用
【发布时间】:2011-11-08 03:45:25
【问题描述】:

我注意到SolrNet 的最新 Alpha 版支持 Autofac 集成。

这个wiki page 讨论了如何与现有容器(StructureMap、Windsor 等)集成,但我找不到任何关于如何与 Autofac 集成的示例。

由于我们使用的是 Autofac 2.5.2,我已经从 SolrNet 想要的旧版本中添加了程序集重定向:

<runtime>
    <!-- SolrNet wants to use an old version of Autofac -->
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da"/>
            <bindingRedirect oldVersion="2.2.4.900" newVersion="2.5.2.830"/>
        </dependentAssembly>
    </assemblyBinding>
</runtime>

哪个工作正常。现在进入实际注册,我试过这个:

builder.Register(c => new AutofacContrib.SolrNet.SolrNetModule("http://localhost:8983/solr/"));

builder 是我的 Autofac ContainerBuilder

但我不知道如何让 SolrNet 知道我希望将结果映射到 Dictionary&lt;string, Object&gt;

Autofac 与 SolrNet 集成的任何示例?由于代码是可取的,尽管也可以查看 XML 配置版本。

PS。我确实注意到 SolrNet wiki 上的最新 changes.txt 提到升级到 Autofac 2.5,因此我的程序集绑定有望很快消失。

谢谢。

【问题讨论】:

    标签: autofac solrnet


    【解决方案1】:

    这个 wiki 页面讨论了如何与现有容器(StructureMap、Windsor 等)集成,但我找不到任何关于如何与 Autofac 集成的示例。

    alpha 版本的文档记录不佳是正常的。如果您正在使用此功能,请考虑为文档发送补丁。

    由于我们使用的是 Autofac 2.5.2,我已经从 SolrNet 想要的旧版本中添加了程序集重定向:

    这已在 master 分支中升级到 2.5.2.830,您可能想要使用它。您可以从build server 获取二进制文件。

    但我不知道如何让 SolrNet 知道我希望将结果映射到 Dictionary&lt;string, Object&gt;

    这还没有为 Autofac 模块实现。请考虑forking the repository 并实施它。但是,使用Dictionary&lt;string, Object&gt; 作为文档类型应该是最后的手段。只要有可能,您应该更喜欢map fields to properly typed properties in a class

    Autofac 与 SolrNet 集成的任何示例?由于代码是可取的,尽管也可以查看 XML 配置版本。

    请参阅tests

    PS。我确实注意到 SolrNet wiki 上的最新 changes.txt 提到升级到 Autofac 2.5,因此我的程序集绑定有望很快消失。

    再次,我建议使用从 master 分支最近构建的。

    【讨论】:

    • 感谢您的信息。我们必须使用Dictionary&lt;string, object&gt;,因为我们的模式都是动态字段,并且可以在运行时动态更改。我设法让 Autofac 注册并给我一个实现 IsolrOperations 的类的实例,但由于映射器还不支持字典,我可能不得不坚持现有的 ServiceLocator 容器。
    • @Spud :“我们的架构都是动态字段,并且可以在运行时动态更改”-> 听起来不是一个好主意...
    • 也许不是,但它就是这样。我们正在尝试在外部定义多个模式(阅读:数百个),并将文档上传到 Solr 以遵守这些模式 - 因此我不想创建类来代表它们,因为它们可以由业务在将要。除了使用 Dictionary 明显丢失强类型之外,您是否发现在使用 Solr 这种方法时还有其他缺陷?
    • @Spud : “一个字段或一个索引中的异构数据越多,它的用处就越少。” (wiki.apache.org/solr/SchemaDesign)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 2017-11-08
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    相关资源
    最近更新 更多