You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Make IConfigurationRefresher instance available via DI #167
It's useful for user code to obtain the instance of IConfigurationRefresher so they can refresh configuration synchronously or write their own middleware etc.
Proposal
Add extension method below that user can call in ConfigureServices(...)
User code can then get the instances of IConfigurationRefresher (via IConfigurationRefresherAccessor) from the DI.
Note: the implementation of IConfigurationRefresherAccessor will need to get IConfiguration from DI and cast it to IConfigurationRoot etc, just like what we do in the middleware today.
Other Considerations
We may need to consider exposing other properties in IConfigurationRefresher so users can differentiate instances from one to another.
We may consider changing our middleware to obtain instances of IConfigurationRefresher in the same way. This means users must call AddAzureAppConfiguration before they can call UseAzureAppConfiguration.
We need to run the code that we have in the middleware today to get IEnunmerable<IConfigurationRefresher>, which is the reason I think we need IConfigurationRefresherAccessor. I will be glad if we don't have to. I will leave this to AA (@abhilasharora) to find out.
Activity
drago-draganov commentedon Jun 5, 2020
I don't think there is a need for
IConfigurationRefresherAccessor. DI can injectIEnunmerable<IConfigurationRefresher>directly.zhenlan commentedon Jun 5, 2020
We need to run the code that we have in the middleware today to get
IEnunmerable<IConfigurationRefresher>, which is the reason I think we needIConfigurationRefresherAccessor. I will be glad if we don't have to. I will leave this to AA (@abhilasharora) to find out.drago-draganov commentedon Jun 5, 2020
It's a standard mechanism to add multiple instances of the same type
T. Then the DI makes it available by requestingIEnumerable<T>abhilasharora commentedon Jun 5, 2020
I already have PR #78 out for changes that provide this functionality. I sent it last year, but it seems for some reason we decided to put it on hold.
abhilasharora commentedon Jul 23, 2020
These changes are now available in version
4.0.0-previewof the package.