Unity 的接口IUnityContainer
public interface IUnityContainer : IDisposable
IUnityContainer RegisterType(Type from, Type to, string name, LifetimeManager lifetimeManager,
params InjectionMember[] injectionMembers);
IUnityContainer RegisterInstance(Type t, string name, object instance, LifetimeManager lifetime);
分别用来注册类型和注册单例的方法。
类UnityContainer 实现了IUnityContainer 接口
public class UnityContainer : IUnityContainer
NamedTypesRegistry 这个类保存了类型注册在Container 中的别名。
internal class NamedTypesRegistry
{
private readonly Dictionary<Type, List<string>> registeredKeys;
private readonly NamedTypesRegistry parent;
public NamedTypesRegistry()
: this(null)
{
}
所有注册过的东西扔到了一个IEnumerabler 里面
/// <summary>
/// Get a sequence of <see cref="ContainerRegistration"/> that describe the current state
/// of the container.
/// </summary>
IEnumerable<ContainerRegistration> Registrations { get; }