Options Pattern
builder.Services .AddOptions<MovieDbOptions>() .Bind(builder.Configuration.GetSection("MovieDb")) .ValidateDataAnnotations() .ValidateOnStart();public class MovieDbOptions{ [Required] public required string AccessToken { get; set; }}{ "MovieDb": { "AccessToken": "..." }}Startup example
Abschnitt betitelt „Startup example“var movieDbOptions = builder.Configuration.GetSection("MovieDb").Get<MovieDbOptions>()!;builder.Services.AddRefitClient<IMovieDbApi>() .ConfigureHttpClient((c) => { c.BaseAddress = new Uri("https://api.themoviedb.org/3"); c.DefaultRequestHeaders.Add("Authorization", $"Bearer {movieDbOptions.AccessToken}"); });oder
builder.Services.AddRefitClient<IMovieDbApi>() .ConfigureHttpClient((serviceProvider, c) => { var movieDbOptions = serviceProvider.GetRequiredService<IOptions<MovieDbOptions>>().Value; ... });Endpoint example
Abschnitt betitelt „Endpoint example“public class MoviesController : ControllerBase{ private readonly MovieDbOptions _movieDbOptions;
public MoviesController(IOptions<MovieDbOptions> movieDbOptions) { _movieDbOptions = movieDbOptions.Value; }
// Jetzt kannst du _movieDbOptions in deinen Action-Methoden nutzen.}Komplexe Validierung
Abschnitt betitelt „Komplexe Validierung“Mehr Info unter
Abschnitt betitelt „Mehr Info unter“https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration/options