public AttributeIntroductionDefinition(IAttributeIntroductionTarget target, AttributeDefinition attribute) { ArgumentUtility.CheckNotNull("target", target); ArgumentUtility.CheckNotNull("attribute", attribute); _target = target; _attribute = attribute; }
public bool ShouldBeReplicated(AttributeDefinition attribute, IAttributeIntroductionTarget targetConfiguration, TargetClassDefinition targetClassDefinition) { ArgumentUtility.CheckNotNull("attribute", attribute); ArgumentUtility.CheckNotNull("targetConfiguration", targetConfiguration); ArgumentUtility.CheckNotNull("targetClassDefinition", targetClassDefinition); return(!attribute.IsCopyTemplate && (!CanInheritAttributesFromBase(targetConfiguration) || (!AttributeUtility.IsAttributeInherited(attribute.AttributeType) && !IsSuppressedByMixin(attribute, targetClassDefinition)))); }
public SuppressedAttributeIntroductionDefinition(IAttributeIntroductionTarget target, AttributeDefinition attribute, AttributeDefinition suppressor) { ArgumentUtility.CheckNotNull("target", target); ArgumentUtility.CheckNotNull("attribute", attribute); ArgumentUtility.CheckNotNull("suppressor", suppressor); _target = target; _attribute = attribute; _suppressor = suppressor; }
private void ImplementAttributes( IMutableMember member, IAttributeIntroductionTarget targetConfiguration, TargetClassDefinition targetClassDefinition) { foreach (var attribute in targetConfiguration.CustomAttributes) { if (_attributeGenerator.ShouldBeReplicated(attribute, targetConfiguration, targetClassDefinition)) { _attributeGenerator.AddAttribute(member, attribute.Data); } } foreach (var introducedAttribute in targetConfiguration.ReceivedAttributes) { _attributeGenerator.AddAttribute(member, introducedAttribute.Attribute.Data); } }
private bool CanInheritAttributesFromBase(IAttributeIntroductionTarget configuration) { // Only methods and base classes can supply attributes for inheritance. return(configuration is TargetClassDefinition || configuration is MethodDefinition); }
public AttributeIntroductionDefinitionBuilder(IAttributeIntroductionTarget target) { Target = target; Suppressors = new List <AttributeDefinition> (); }