コード例 #1
0
        /// <summary>
        /// Apply the registrations from this element to the given container.
        /// </summary>
        /// <param name="container">Container to configure.</param>
        protected override void ConfigureContainer(IUnityContainer container)
        {
            Type            registeringType = GetRegisteringType();
            Type            mappedType      = GetMappedType();
            LifetimeManager lifetime        = Lifetime.CreateLifetimeManager();
            IEnumerable <InjectionMember> injectionMembers =
                InjectionMembers.SelectMany(m => m.GetInjectionMembers(container, registeringType, mappedType, Name));

            container.RegisterType(registeringType, mappedType, Name, lifetime, injectionMembers.ToArray());
        }
コード例 #2
0
 internal void Configure(IUnityContainer container, PolicyDefinition policyDefinition)
 {
     if (string.IsNullOrEmpty(this.TypeName))
     {
         policyDefinition.AddCallHandler(this.Name);
     }
     else
     {
         Type handlerType = TypeResolver.ResolveType(TypeName);
         IEnumerable <InjectionMember> injectionMembers =
             Injection.SelectMany(
                 element => element.GetInjectionMembers(container, typeof(ICallHandler), handlerType, Name));
         policyDefinition.AddCallHandler(handlerType, Lifetime.CreateLifetimeManager(),
                                         injectionMembers.ToArray());
     }
 }
コード例 #3
0
        internal void Configure(IUnityContainer container, PolicyDefinition policyDefinition)
        {
            if (string.IsNullOrEmpty(TypeName))
            {
                policyDefinition.AddMatchingRule(Name);
            }
            else
            {
                Type            matchingRuleType = TypeResolver.ResolveType(TypeName);
                LifetimeManager lifetime         = Lifetime.CreateLifetimeManager();
                IEnumerable <InjectionMember> injectionMembers =
                    Injection.SelectMany(
                        element => element.GetInjectionMembers(container, typeof(IMatchingRule), matchingRuleType, Name));

                policyDefinition.AddMatchingRule(matchingRuleType, lifetime, injectionMembers.ToArray());
            }
        }
コード例 #4
0
        public void Configure(IUnityContainer container)
        {
            Guard.ArgumentNotNull(container, "container");
            LifetimeManager lifetimeManager = null;

            if (Lifetime != null)
            {
                lifetimeManager = Lifetime.CreateLifetimeManager();
            }

            container.RegisterType(Type, MapTo, Name, lifetimeManager);

            foreach (UnityContainerTypeConfigurationElement typeConfigElement in this.TypeConfig)
            {
                typeConfigElement.ParentElement = this;
                typeConfigElement.Configure(container);
            }
        }