我注意到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的升级,所以我的装配绑定很快就会消失。
感谢。
答案 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分支构建的最新版本。