使用SolrNet 4.0 alpha 1或更高版本与Autofac

时间:2011-11-08 03:45:25

标签: autofac solrnet

我注意到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<string, Object>

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

PS。我注意到SolrNet wiki上的最新更改.txt提到了Autofac 2.5的升级,所以我的装配绑定很快就会消失。

感谢。

1 个答案:

答案 0 :(得分:1)

  

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

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

  

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

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

  

但我无法弄清楚如何让SolrNet知道我希望结果映射到Dictionary<string, Object>

Autofac模块尚未实现此功能。请考虑forking the repository并实施它。但是,使用Dictionary<string, Object>作为文档类型应该是最后的手段。只要有可能,您应该选择map fields to properly typed properties in a class

  

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

请参阅tests

  

PS。我注意到SolrNet wiki上的最新更改.txt提到了Autofac 2.5的升级,所以我的装配绑定很快就会消失。

同样,我建议使用从master分支构建的最新版本。