NightOwl888 commented on issue #323:
URL: https://github.com/apache/lucenenet/issues/323#issuecomment-668208832
Thanks for the report.
What packages do you have from `Microsoft.Extensions.Configuration`
installed in your project? And what versions?
I was able to reproduce this. I still need to look into why this is
happening. The `Providers` property hasn't changed from
`IEnumerable<IConfigurationProvider>`, so it is a bit odd that it is throwing
an exception.
Fortunately, this time there is a workaround. You can bypass the
`ConfigurationRoot` provider by injecting your own at application startup. Just
provide your existing `IConfiguration` instance to `ConfigurationFactory`, or
use the below code as the default.
```c#
IConfiguration configuration = new
ConfigurationBuilder().AddEnvironmentVariables("lucene:").Build();
Lucene.Net.Configuration.ConfigurationSettings.SetConfigurationFactory(new
ConfigurationFactory(configuration));
```
Here is one way to implement `ConfigurationFactory`. You could alternatively
use a `Func<IConfiguration>` in the constructor and actively read it on the fly
from its source if you need to.
```c#
public class ConfigurationFactory :
Lucene.Net.Configuration.IConfigurationFactory
{
private readonly IConfiguration configuration;
public ConfigurationFactory(IConfiguration configuration)
{
this.configuration = configuration ?? throw new
ArgumentNullException(nameof(configuration));
}
public IConfiguration GetConfiguration() => configuration;
}
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]