public static string AugmentPropertyNameWithPropertyModifierMarkerTemplate(PropertyDefinition propertyDefinition, MemberAttributes getAccessorAttributes, MemberAttributes setAccessorAttributes) { string name = propertyDefinition.Name; if (getAccessorAttributes != setAccessorAttributes || propertyDefinition.DeclaringType.IsInterface || propertyDefinition.HasParameters) { return(name); } var isNew = propertyDefinition.IsNew(typeDef => typeDef?.Properties, e => e.Name.Equals(propertyDefinition.Name, StringComparison.Ordinal)); return(ModifierMarkerNameBuilder.Build(propertyDefinition.GetMethod, getAccessorAttributes, isNew, name, CodeNormalizer.PropertyModifierMarkerTemplate)); }
public static string AugmentMethodNameWithMethodModifierMarkerTemplate(MethodDefinition methodDefinition, MemberAttributes attributes) { var name = CSharpOperatorKeyword.Get(methodDefinition.Name); if (methodDefinition.DeclaringType.IsInterface) { return(name); } var isNew = methodDefinition.IsNew(typeDef => typeDef?.Methods, e => e.Name.Equals(methodDefinition.Name, StringComparison.Ordinal) && e.Parameters.Count == methodDefinition.Parameters.Count && e.Parameters.SequenceEqual(methodDefinition.Parameters, new ParameterTypeComparer())); return(ModifierMarkerNameBuilder.Build(methodDefinition, attributes, isNew, name, CodeNormalizer.MethodModifierMarkerTemplate)); }
public static string AugmentEventNameWithEventModifierMarkerTemplate(EventDefinition eventDefinition, MemberAttributes addAccessorAttributes, MemberAttributes removeAccessorAttributes) { string name = eventDefinition.Name; if (addAccessorAttributes != removeAccessorAttributes) { return(name); } if (eventDefinition.DeclaringType.IsInterface) { return((addAccessorAttributes & MemberAttributes.VTableMask) == MemberAttributes.New ? Format(CodeNormalizer.EventModifierMarkerTemplate, $"new{CodeNormalizer.EventRemovePublicMarker}") + name : Format(CodeNormalizer.EventModifierMarkerTemplate, CodeNormalizer.EventRemovePublicMarker) + name); } var isNew = eventDefinition.IsNew(typeDef => typeDef?.Events, e => e.Name.Equals(eventDefinition.Name, StringComparison.Ordinal)); return(ModifierMarkerNameBuilder.Build(eventDefinition.AddMethod, addAccessorAttributes, isNew, name, CodeNormalizer.EventModifierMarkerTemplate)); }