Simple types can be resolved without any prior registration with the container.
This is acheived through the use of generic functions on the container and conformance to the Injectable
protocol for types that need to be injected.
- Ephemeral: will always resolve a new object. See EphemeralLifetimeTests
- Transient: will resolve a new object unless there is an instance already in memory. See TransientLifetimeTests
- Persistent: will always resolve the same object. See PersistentLifetimeTests
See TypeVariantTests
See CyclesTests