Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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));
        }