[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
- struct's lifetime requirements can be bypassed via covariant field assignment
- Proposal to Reorganize the Moderation Team and Review Moderation Policies
- Progressive FPS degradation appears to be related to dota2.com — blocking the domain prevents the performance loss
- proposal: container/...: generic collection types
- Better Custom Endpoint BYOK
- A concrete policy for backward compatibility until Godot 5.0
Raise real-world problems, find people facing the same issue, and discuss solutions.2,500 issues0 comments
github (Other)
struct's lifetime requirements can be bypassed via covariant field assignment
Proposal to Reorganize the Moderation Team and Review Moderation Policies
Progressive FPS degradation appears to be related to dota2.com — blocking the domain prevents the performance loss
proposal: container/...: generic collection types
Better Custom Endpoint BYOK
A concrete policy for backward compatibility until Godot 5.0
New MTP models not supported
Tracking: 429 / Capacity Issues
[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
Comments (0)
No comments yet. Start the discussion.