private bool TryGetCompositeAttribute(Type concreteType, Type serviceType, out CompositeAttribute compositeAttribute) { compositeAttribute = concreteType.GetCustomAttribute <CompositeAttribute>() ?? serviceType.GetCustomAttribute <CompositeAttribute>(); return(compositeAttribute.IsNotNull()); }
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); } }