Esempio n. 1
0
        public static string GetName(this MemberInfo info, MondBindingOptions options)
        {
            var name = info.GetCustomAttribute <MondAliasAttribute>(true)?.Name ?? info.Name;

            return(options.HasFlag(MondBindingOptions.PreserveNames) && !name.StartsWith("__")
                ? name
                : name.ChangeNameCase());
        }
Esempio n. 2
0
        public static string ChangeNameCase(this string name, MondBindingOptions options = MondBindingOptions.None)
        {
            if (options.HasFlag(MondBindingOptions.PreserveNames))
            {
                return(name);
            }

            if (!StringExtensions.IdentifierRegex.IsMatch(name))
            {
                return(name);
            }

            var matches = StringExtensions.IdentifierRegex
                          .Matches(name)
                          .Cast <Match>()
                          .Select(
                m => m.Value
                .ToLower()
                .Trim('_')
                )
                          .ToArray();

            return(matches.First() + String.Join(String.Empty, matches.Skip(1).Select(s => s.ToUpperFirst())));
        }