Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Conclusion

Summary

SimplEnteiner is a compact, dependency-light Dependency Injection container for .NET (netstandard2.1) that implements, from first principles, the full set of features expected of a mature IoC container:

Its value proposition is embeddability and transparency: a small, fully-owned, dependency-light codebase (two NuGet packages, no third-party IoC dependency) that application and library authors can audit, extend, or fork with confidence, while still covering the vast majority of features found in larger, more established DI containers.

Known Gaps and Roadmap

The following gaps were identified while producing this documentation and are recommended as a roadmap for future work:

  1. NuGet packaging is not configured — no PackageId/Version/Description/license metadata, no dotnet pack/publish pipeline. See Building and Deployment.
  2. No CI/CD pipeline — no GitHub Actions workflow (or other CI system) currently builds, tests, or publishes this repository automatically. See Testing and Quality Assurance → CI/CD Integration.
  3. Test coverage gap for Core.* namespaces — the current test suite exhaustively covers TypeAnalyzes but has no dedicated tests for DIContainer, Scope, Resolver, Registry, decorators, or the MS.DI integration layer, despite fixture types already prepared for lifetime/disposal testing. See Testing and Quality Assurance.
  4. No public extensibility point for custom ScopeCreationConfig on DIContainerConfigureConfig is private, so swapping in a custom IResolver/IRegistryFactory/IScopeFactory/IRepositoryService currently requires bypassing DIContainer and using Scope directly. See Configuration and Settings.
  5. Serialization round-trip fidelity is incomplete — non-instance, non-decorator registrations lose their factory delegate on import and will throw NullReferenceException if resolved afterward; OnActivation/OnRelease callbacks are never serialized. See Configuration Import/Export (Serialization) → Important Caveats.
  6. No logging integration — there is no ILogger/Microsoft.Extensions.Logging hook anywhere; all diagnostics must be added by consumers via OnActivation/OnRelease/lifecycle interfaces/decorators. See Error Handling and Logging.
  7. No BenchmarkDotNet project or published performance numbers — performance characteristics in this book are derived from code inspection, not measurement. See Performance and Optimization.
  8. Func<T> wrapper resolution recompiles its expression tree on every resolution (unlike constructor factories, which are cached) — a plausible, low-risk optimization target. See Performance and Optimization → Known Bottlenecks.
  9. No CONTRIBUTING.md, license file, or issue/PR templates currently exist in the repository. See Contributing.

Additional Resources

This concludes the SimplEnteiner documentation book. Return to the Introduction or browse the Architecture and API Reference sections for deeper detail on any specific area.