#[non_exhaustive]pub struct ServiceProviderOptions {
pub validate_scopes: bool,
}Expand description
Options for ServiceCollection::build_with /
ServiceCollection::build_async_with.
Defaults match MEDI/ASP.NET Core development-time scope validation:
validate_scopes = true. Use ServiceProviderOptions::lenient to allow
resolving scoped services from the root provider (pre-0.8 behavior).
Options for building a ServiceProvider.
#[non_exhaustive]: construct via ServiceProviderOptions::new and the
with_* builder methods (Default equals new()), so future options stay
additive.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.validate_scopes: boolReject resolving Scoped services from the root provider.
Mirrors MEDI ValidateScopes as enabled by the .NET (ASP.NET Core) host
in the Development environment: resolving a scoped service outside a
scope is a misconfiguration, because the root caches it for the container
lifetime (the “scoped becomes singleton” anti-pattern).
true(default):get/get_async(and constructor dependencies) returnRdiError::ScopedFromRootProviderwhen they would resolve aScopedservice from the root provider. Infallible lookups (get_optional,get_all,get_all_keyed,try_*) treat such a service as not resolvable at the root.get_ownedis exempt for the owned instance itself (it is caller-owned and never enters a scope cache); its transitive dependencies are still validated.false: restores rust-dix ≤ 0.7 root-scope behavior (the root provider caches scoped instances and acts as the root scope).
Implementations§
Source§impl ServiceProviderOptions
impl ServiceProviderOptions
Sourcepub fn new() -> ServiceProviderOptions
pub fn new() -> ServiceProviderOptions
Strict defaults: validate_scopes = true.
Sourcepub fn with_validate_scopes(
self,
validate_scopes: bool,
) -> ServiceProviderOptions
pub fn with_validate_scopes( self, validate_scopes: bool, ) -> ServiceProviderOptions
Set scope validation explicitly.
Sourcepub fn lenient() -> ServiceProviderOptions
pub fn lenient() -> ServiceProviderOptions
Convenience preset matching MEDI’s bare BuildServiceProvider():
scope validation disabled (root-scope resolution allowed).
Trait Implementations§
Source§impl Clone for ServiceProviderOptions
impl Clone for ServiceProviderOptions
Source§fn clone(&self) -> ServiceProviderOptions
fn clone(&self) -> ServiceProviderOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more