gitextract_6bqpv2p6/ ├── .gitattributes ├── .github/ │ ├── dependabot.yml │ └── workflows/ │ ├── codeql-analysis.yml │ ├── docs.yml │ ├── linux-macOS-CI.yml │ ├── sonar-analysis.yml │ └── stale.yml ├── .gitignore ├── .version ├── CHANGELOG.md ├── LICENSE ├── README.md ├── appveyor-release.yml ├── appveyor.yml ├── docs/ │ ├── .gitignore │ ├── babel.config.js │ ├── docs/ │ │ ├── advanced/ │ │ │ ├── child-containers.md │ │ │ ├── decorators.md │ │ │ ├── generics.md │ │ │ ├── special-resolution-cases.md │ │ │ └── wrappers-resolvers.md │ │ ├── configuration/ │ │ │ ├── container-configuration.md │ │ │ └── registration-configuration.md │ │ ├── diagnostics/ │ │ │ ├── utilities.md │ │ │ └── validation.md │ │ ├── getting-started/ │ │ │ ├── glossary.md │ │ │ ├── introduction.md │ │ │ └── overview.md │ │ └── guides/ │ │ ├── advanced-registration.md │ │ ├── basics.md │ │ ├── lifetimes.md │ │ ├── scopes.md │ │ └── service-resolution.md │ ├── docusaurus.config.js │ ├── package.json │ ├── sidebars.js │ ├── src/ │ │ ├── components/ │ │ │ ├── CodeDescPanel/ │ │ │ │ ├── index.tsx │ │ │ │ └── styles.module.scss │ │ │ ├── NavbarItems/ │ │ │ │ ├── SeparatorNavbarItem/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.module.scss │ │ │ │ └── SvgNavbarItem/ │ │ │ │ ├── index.tsx │ │ │ │ └── styles.module.scss │ │ │ └── SvgIcon/ │ │ │ └── index.tsx │ │ ├── css/ │ │ │ ├── custom.scss │ │ │ ├── pagination.scss │ │ │ ├── search.scss │ │ │ ├── sidebar.scss │ │ │ ├── tab.scss │ │ │ └── toc.scss │ │ ├── pages/ │ │ │ ├── index.js │ │ │ └── index.module.scss │ │ ├── theme/ │ │ │ ├── CodeBlock/ │ │ │ │ └── index.js │ │ │ ├── Footer/ │ │ │ │ ├── index.js │ │ │ │ └── styles.module.scss │ │ │ └── NavbarItem/ │ │ │ └── ComponentTypes.js │ │ └── utils/ │ │ └── prismDark.mjs │ └── static/ │ └── .nojekyll ├── sandbox/ │ ├── stashbox.assemblyload/ │ │ ├── Program.cs │ │ └── stashbox.assemblyload.csproj │ ├── stashbox.benchmarks/ │ │ ├── BeginScopeBenchmarks.cs │ │ ├── ChildContainerBenchmarks.cs │ │ ├── DecoratorBenchmarks.cs │ │ ├── DisposeBenchmarks.cs │ │ ├── EnumerableBenchmarks.cs │ │ ├── FinalizerBenchmarks.cs │ │ ├── FuncBenchmarks.cs │ │ ├── NullableBenchmarks.cs │ │ ├── Program.cs │ │ ├── PropertyBenchmarks.cs │ │ ├── RegisterBenchmarks.cs │ │ ├── ResolveBenchmarks.cs │ │ ├── ScopedBenchmarks.cs │ │ ├── SingletonBenchmarks.cs │ │ ├── Stashbox.Benchmarks.csproj │ │ └── TreeBenchmarks.cs │ ├── stashbox.sandbox.sln │ └── stashbox.trimmed/ │ ├── Program.cs │ └── stashbox.trimmed.csproj ├── sn.snk ├── src/ │ ├── Attributes/ │ │ ├── DependencyAttribute.cs │ │ ├── DependencyNameAttribute.cs │ │ └── InjectionMethodAttribute.cs │ ├── Configuration/ │ │ ├── ContainerConfiguration.cs │ │ ├── ContainerConfigurator.cs │ │ └── Rules.cs │ ├── ContainerContext.cs │ ├── Exceptions/ │ │ ├── CompositionRootNotFoundException.cs │ │ ├── ConstructorNotFoundException.cs │ │ ├── InvalidRegistrationException.cs │ │ ├── LifetimeValidationFailedException.cs │ │ ├── ResolutionFailedException.cs │ │ └── ServiceAlreadyRegisteredException.cs │ ├── Expressions/ │ │ ├── Compile/ │ │ │ ├── Closure.cs │ │ │ ├── CompilerContext.cs │ │ │ ├── Emitters/ │ │ │ │ ├── Emitter.Assign.cs │ │ │ │ ├── Emitter.Call.cs │ │ │ │ ├── Emitter.Constant.cs │ │ │ │ ├── Emitter.Convert.cs │ │ │ │ ├── Emitter.Default.cs │ │ │ │ ├── Emitter.Invoke.cs │ │ │ │ ├── Emitter.Lambda.cs │ │ │ │ ├── Emitter.MemberAccess.cs │ │ │ │ ├── Emitter.MemberInit.cs │ │ │ │ ├── Emitter.New.cs │ │ │ │ ├── Emitter.NewArrayInit.cs │ │ │ │ ├── Emitter.Parameter.cs │ │ │ │ └── Emitter.cs │ │ │ ├── ExpressionEmitter.cs │ │ │ ├── Extensions/ │ │ │ │ ├── CollectionExtensions.cs │ │ │ │ └── ILGeneratorExtensions.cs │ │ │ ├── NestedLambda.cs │ │ │ ├── TreeAnalyzer.cs │ │ │ └── Utils.cs │ │ ├── ExpressionBuilder.Default.cs │ │ ├── ExpressionBuilder.Factory.cs │ │ ├── ExpressionBuilder.Func.cs │ │ ├── ExpressionBuilder.cs │ │ ├── ExpressionFactory.Member.cs │ │ ├── ExpressionFactory.Method.cs │ │ └── ExpressionFactory.cs │ ├── Extensions/ │ │ ├── AssemblyExtensions.cs │ │ ├── CollectionExtensions.cs │ │ ├── EnumerableExtensions.cs │ │ ├── ExpressionExtensions.cs │ │ └── TypeExtensions.cs │ ├── ICompositionRoot.cs │ ├── IContainerContext.cs │ ├── IDecoratorRegistrator.cs │ ├── IDependencyCollectionRegistrator.cs │ ├── IDependencyReMapper.cs │ ├── IDependencyRegistrator.cs │ ├── IDependencyResolver.cs │ ├── IFuncRegistrator.cs │ ├── IResolutionScope.cs │ ├── IStashboxContainer.cs │ ├── Lifetime/ │ │ ├── AutoLifetime.cs │ │ ├── EmptyLifetime.cs │ │ ├── ExpressionLifetimeDescriptor.cs │ │ ├── FactoryLifetimeDescriptor.cs │ │ ├── LifetimeDescriptor.cs │ │ ├── Lifetimes.cs │ │ ├── NamedScopeLifetime.cs │ │ ├── PerRequestLifetime.cs │ │ ├── ScopedLifetime.cs │ │ ├── SingletonLifetime.cs │ │ └── TransientLifetime.cs │ ├── Metadata.cs │ ├── Multitenant/ │ │ ├── ITenantDistributor.cs │ │ └── TenantDistributor.cs │ ├── Override.cs │ ├── ReadOnlyKeyValue.cs │ ├── Registration/ │ │ ├── DecoratorRepository.cs │ │ ├── Extensions/ │ │ │ ├── CollectionRegistratorExtensions.cs │ │ │ ├── DependencyRegistratorExtensions.cs │ │ │ ├── DependencyRemapperExtensions.cs │ │ │ └── ServiceRepositoryExtensions.cs │ │ ├── Fluent/ │ │ │ ├── BaseDecoratorConfigurator.cs │ │ │ ├── BaseFluentConfigurator.cs │ │ │ ├── DecoratorConfigurator.cs │ │ │ ├── FluentServiceConfigurator.cs │ │ │ ├── RegistrationConfigurator.cs │ │ │ └── UnknownRegistrationConfigurator.cs │ │ ├── IDecoratorRepository.cs │ │ ├── IRegistrationRepository.cs │ │ ├── OpenGenericRegistration.cs │ │ ├── RegistrationDiagnosticsInfo.cs │ │ ├── RegistrationRepository.cs │ │ ├── SelectionRules/ │ │ │ ├── ConditionRule.cs │ │ │ ├── DecoratorRule.cs │ │ │ ├── EnumerableNameRule.cs │ │ │ ├── IRegistrationSelectionRule.cs │ │ │ ├── MetadataRule.cs │ │ │ ├── NameRule.cs │ │ │ ├── OpenGenericRule.cs │ │ │ ├── RegistrationSelectionRules.cs │ │ │ └── ScopeNameRule.cs │ │ ├── ServiceRegistration.cs │ │ └── ServiceRegistrator.cs │ ├── Resolution/ │ │ ├── DelegateCache.cs │ │ ├── DelegateCacheEntry.cs │ │ ├── Extensions/ │ │ │ ├── DependencyResolverExtensions.cs │ │ │ ├── InjectionParameterExtensions.cs │ │ │ └── ResolutionBehaviorExtensions.cs │ │ ├── ILookupResolver.cs │ │ ├── IRequestContext.cs │ │ ├── IResolutionStrategy.cs │ │ ├── IResolver.cs │ │ ├── IWrapper.cs │ │ ├── RequestContext.cs │ │ ├── ResolutionBehavior.cs │ │ ├── ResolutionContext.cs │ │ ├── ResolutionStrategy.cs │ │ ├── Resolvers/ │ │ │ ├── DefaultValueResolver.cs │ │ │ ├── OptionalValueResolver.cs │ │ │ ├── ParentContainerResolver.cs │ │ │ ├── ServiceProviderResolver.cs │ │ │ └── UnknownTypeResolver.cs │ │ ├── ServiceContext.cs │ │ ├── TypeInformation.cs │ │ └── Wrappers/ │ │ ├── EnumerableWrapper.cs │ │ ├── FuncWrapper.cs │ │ ├── KeyValueWrapper.cs │ │ ├── LazyWrapper.cs │ │ └── MetadataWrapper.cs │ ├── ResolutionScope.AsyncInitializer.cs │ ├── ResolutionScope.Disposable.cs │ ├── ResolutionScope.Resolver.cs │ ├── ResolutionScope.cs │ ├── StashboxContainer.CollectionRegistrator.cs │ ├── StashboxContainer.FuncRegistrator.cs │ ├── StashboxContainer.ReMapper.cs │ ├── StashboxContainer.Registrator.cs │ ├── StashboxContainer.Resolver.cs │ ├── StashboxContainer.cs │ ├── Utils/ │ │ ├── Constants.cs │ │ ├── Data/ │ │ │ ├── ExpandableArray.cs │ │ │ ├── HashTree.cs │ │ │ ├── Immutable/ │ │ │ │ ├── ImmutableBucket.cs │ │ │ │ ├── ImmutableLinkedList.cs │ │ │ │ └── ImmutableTree.cs │ │ │ ├── Pair.cs │ │ │ ├── Stack.cs │ │ │ └── Tree.cs │ │ ├── Shield.cs │ │ ├── Swap.cs │ │ └── TypeCache.cs │ └── stashbox.csproj ├── stashbox.sln └── test/ ├── ActivateTests.cs ├── AssemblyTests.cs ├── AsyncDisposeTests.cs ├── AttributeTests.cs ├── BuildUpTests.cs ├── CanResolveTests.cs ├── ChildContainerTests.cs ├── CircularDependencyTests.cs ├── CompilerTests/ │ ├── ConstantTests.cs │ ├── DefaultTests.cs │ └── NullableTests.cs ├── ComplexResolution.cs ├── CompositionTests.cs ├── ConditionalTests.cs ├── ConfigurationTests.cs ├── ConstructorSelectionTests.cs ├── ContainerTests.cs ├── DataTests/ │ └── TreeTests.cs ├── DecoratorTests.cs ├── DependencyBindingTests.cs ├── DisposeOrderTests.cs ├── DisposeTests.cs ├── EnumerableTests.cs ├── FactoryTests.cs ├── FuncTests.cs ├── GenericTests.cs ├── HierarchyTests.cs ├── InitializerFinalizerTests.cs ├── InjectionMemberTests.cs ├── InstanceBuilderTests.cs ├── IssueTests/ │ ├── 102_Resolving_Func_use_wrong_constructor.cs │ ├── 103_Resolving_base_class_dependencies.cs │ ├── 105_Question_How_to_work_with_dependency_overrides_from_factory_method.cs │ ├── 114_Unable_to_resolve_IHubContext.cs │ ├── 116_Different_types_registered_with_the_same_name.cs │ ├── 118_Named_resolution_using_ResolveAll_returns_all_named_and_unnamed_instanсes.cs │ ├── 119_generic_resolution_issue.cs │ ├── 129_Sharing_singleton_instances_between_Resolve_and_ResolveAll_and_subtypes.cs │ ├── 132_OpenGenericResolveIssue.cs │ ├── 141_Decorator_and_ResolveAll.cs │ ├── 144_Generic_decorators_broken.cs │ ├── 163_Last_write_win_problem_when_hash_collision_happens.cs │ ├── 16_Extensions_Identity_OptionsMonitor.cs │ ├── 213_Bug_Resolving_Lazy_Func.cs │ ├── 228_Stashbox_does_not_handle_Optional_correctly.cs │ ├── 33_ScopedLifetime_thread_safety.cs │ ├── 34_Resolution_from_parent_container.cs │ ├── 35_Mixture_of_named_and_non_named_registrations_result_in_the_wrong_type_resolved.cs │ ├── 37_Resolver_factory_invoke_doesnt_pass_different_parameters_given_when_theyre_the_same_type.cs │ ├── 38_Injecting_container_itself.cs │ ├── 42_Circular_dependency_tracking_doesnt_work_with_factory_resolution.cs │ ├── 43_Issue_with_Member_Injection_with_Attribute_but_private_setter.cs │ ├── 44_Lifetime_Issues.cs │ ├── 46_AspNetCore_Failing_spec_tests_forconstrained_generics.cs │ ├── 48_Chained_named_scopes_are_not_working_properly.cs │ ├── 49_Unable_to_use_nullable_types_with_injection_parameters.cs │ ├── 50_Generate_one_instance_for_multiple_interfaces.cs │ ├── 51_WithUnknownTypeResolution_breaks_constructor_selection_rules.cs │ ├── 52_Verify_child_container_working.cs │ ├── 53_ComposeBy_with_instance_or_injection.cs │ ├── 54_Make_InjectionParameter_configuration_more_fluent.cs │ ├── 55_Conditions_on_member_name_are_not_easy_to_recognize.cs │ ├── 58_InjectionParameter_NullReference.cs │ ├── 59_Static_factory_fails.cs │ ├── 63_named_unnamed_resolution_not_working_as_expected.cs │ ├── 64_WithFactory_MemberInjection_Not_Working_With_ImplementationType.cs │ ├── 66_Named_PutInstanceInScope.cs │ ├── 67_Dictionaries_get_resolved_to_arrays_of_key_type_by_default.cs │ ├── 68_Programmatic_multiple_instances_registration.cs │ ├── 70_UnkownType_overrides_instance_in_scope.cs │ ├── 71_FastExpressionCompiler_Issue.cs │ ├── 72_Default_lifetime_set.cs │ ├── 76_Exception_when_building_expressions.cs │ ├── 77_UnknownType_Resolution_Does_Not_Work.cs │ ├── 80_Expected_override_behaviour_not_working_with_scopes.cs │ ├── 84_DefinesScope_does_not_work_correctly.cs │ ├── 88_IdentityServer_not_compatible.cs │ ├── 89_Call_interception.cs │ ├── 91_Resolving_with_custom_parameter_values.cs │ ├── 97_Does_Scope_AttachToParent_only_affect_Dispose_behaviour.cs │ └── 98_Replace_doesnt_working_singleton.cs ├── KeyValueTests.cs ├── KeyedTests.cs ├── LazyTests.cs ├── LifetimeTests.cs ├── MetadataTests.cs ├── MultitenantTests.cs ├── NamedResolveTests.cs ├── NamedScopeTests.cs ├── OverrideTests.cs ├── PerRequestResolutionTests.cs ├── ReMapTests.cs ├── RegisterTypesTests.cs ├── ResolveFactoryTests.cs ├── ResolverTests.cs ├── ScopeTests.cs ├── ServiceProviderTests.cs ├── StandardResolveTests.cs ├── Utils/ │ ├── CompilerType.cs │ ├── CompilerTypeTestData.cs │ ├── ContainerConfiguratorExtensions.cs │ └── TypeGen.cs ├── WireUpTests.cs ├── WithDynamicResolutionTests.cs ├── stashbox.tests.csproj └── testassembly/ ├── Composition.cs ├── TestClasses.cs └── testassembly.csproj