상속: System.Attribute
예제 #1
0
        private bool TryGetCompositeAttribute(Type concreteType, Type serviceType, out CompositeAttribute compositeAttribute)
        {
            compositeAttribute = concreteType.GetCustomAttribute <CompositeAttribute>() ??
                                 serviceType.GetCustomAttribute <CompositeAttribute>();

            return(compositeAttribute.IsNotNull());
        }
예제 #2
0
        public override void Register(Type concreteType, Type serviceType, string name = null)
        {
            CompositeFrameworkRegistration compositeRegistration = null;

            if (IsNotIgnoreRegistration(concreteType, serviceType))
            {
                Type castAs = null;
                CompositeAttribute compositeAttr = null;

                if (TryGetCompositeAttribute(concreteType, serviceType, out compositeAttr))
                {
                    castAs = compositeAttr.As;
                }

                compositeRegistration = new CompositeFrameworkRegistration(concreteType, serviceType, castAs);
                registrations.Add(compositeRegistration);
            }
        }