IssueRaiser

[API Proposal]: AsyncConfigurationProvider

### Background and motivation As it currently stands, configuration sources have no way of being asynchronous (Highlighted in #36018). These new set of types should allow for users to implement asynchronous configuration providers with no breaking changes to the way the existing API's function. ### API Proposal ```cs namespace Microsoft.Extensions.Configuration; public interface IAsyncConfigurationBuilder : IConfigurationBuilder { Task<IAsyncConfigurationBuilder> AddAsync(IAsyncConfigurationSource source); Task<IAsyncConfigurationRoot> BuildAsync(); } public interface IAsyncConfigurationManager : IConfigurationManager, IAsyncConfigurationBuilder { } public interface IAsyncConfigurationProvider : IConfigurationProvider { Task LoadAsync(); } public interface IAsyncConfigurationRoot : IConfigurationRoot { Task ReloadAsync(); } public interface IAsyncConfigurationSource : IConfigurationSource { Task<IAsyncConfigurationProvider> BuildAsync(IAsyncConfigurationBuilder builder); } public static class IConfigurationManagerExtensions { public static IAsyncConfigurationManager? AsAsyncManager(this IConfigurationManager configurationManager); } ``` ```cs namespace Microsoft.Extensions.Configuration; public class AsyncConfigurationBuilder : ConfigurationBuilder, IAsyncConfigurationBuilder { public Task<IAsyncConfigurationBuilder> AddAsync(IAsyncConfigurationSource source); public Task<IAsyncConfigurationRoot> BuildAsync(); } public class AsyncCo

Posted by KieranDevvs on Dec 3, 2022, 3:04 PM

Tags

Related issues

Raise real-world problems, find people facing the same issue, and discuss solutions.2,500 issues0 comments

github (Other)

[API Proposal]: AsyncConfigurationProvider

KieranDevvsDec 3, 2022, 3:04 PM

### Background and motivation As it currently stands, configuration sources have no way of being asynchronous (Highlighted in #36018). These new set of types should allow for users to implement asynchronous configuration providers with no breaking changes to the way the existing API's function. ### API Proposal ```cs namespace Microsoft.Extensions.Configuration; public interface IAsyncConfigurationBuilder : IConfigurationBuilder { Task<IAsyncConfigurationBuilder> AddAsync(IAsyncConfigurationSource source); Task<IAsyncConfigurationRoot> BuildAsync(); } public interface IAsyncConfigurationManager : IConfigurationManager, IAsyncConfigurationBuilder { } public interface IAsyncConfigurationProvider : IConfigurationProvider { Task LoadAsync(); } public interface IAsyncConfigurationRoot : IConfigurationRoot { Task ReloadAsync(); } public interface IAsyncConfigurationSource : IConfigurationSource { Task<IAsyncConfigurationProvider> BuildAsync(IAsyncConfigurationBuilder builder); } public static class IConfigurationManagerExtensions { public static IAsyncConfigurationManager? AsAsyncManager(this IConfigurationManager configurationManager); } ``` ```cs namespace Microsoft.Extensions.Configuration; public class AsyncConfigurationBuilder : ConfigurationBuilder, IAsyncConfigurationBuilder { public Task<IAsyncConfigurationBuilder> AddAsync(IAsyncConfigurationSource source); public Task<IAsyncConfigurationRoot> BuildAsync(); } public class AsyncCo

Comments (0)

No comments yet. Start the discussion.

Comment on this issue