【问题标题】:How to convert SolrNet Get Method to Windsor如何将 SolrNet Get 方法转换为 Windsor
【发布时间】:2016-02-04 00:49:05
【问题描述】:

我们有一个可用的 Web API 端点,它使用 SolrNet 进行搜索。

为了通过查询字符串接收 Solr 核心名称,而不是在 Startup 方法中进行硬编码,我们切换到 Windsor 配置。

如何使用Windsor方法编写以下内容?

当前工作代码:

            // Application_Start()
            var connection = new SolrConnection("url/");
            var loggingConnection = new LoggingConnection(connection);
            Startup.Init<product>(loggingConnection);

            // GET api/query
            var conn = ServiceLocator.Current.GetInstance<ISolrConnection>();             
            var xml = conn.Get("/select", query);

我们尝试了以下方法,但解析不适用于 IsolrConnection:

            // GET api/core/query/
            var container = new WindsorContainer();
            var solrFacility = new SolrNetFacility("url/" + core);
            container.AddFacility("solr", solrFacility);                

            var conn = container.Resolve<ISolrConnection<product>>();             
            var xml = conn.Get("/select", query);

【问题讨论】:

  • “它不起作用”到底是什么意思?例外?如果有,有什么例外?
  • 感谢您的回复。它不会编译错误“不能与类型参数一起使用”。起初它没有点击到我,但现在我想通了。

标签: castle-windsor solrnet


【解决方案1】:

IsolrConnection 不能是类型产品。

解决方法如下:

        // GET api/core/query/
        var container = new WindsorContainer();
        var solrFacility = new SolrNetFacility("url/" + core);
        container.AddFacility("solr", solrFacility);                

        var conn = container.Resolve<ISolrConnection>();             
        var xml = conn.Get("/select", query);

【讨论】:

    猜你喜欢
    • 2019-04-19
    • 1970-01-01
    • 2020-03-05
    • 2021-02-19
    • 2016-07-20
    • 1970-01-01
    • 2023-02-07
    • 1970-01-01
    • 2023-01-30
    相关资源
    最近更新 更多