Exemple #1
0
        public static string GetDisplayName(Type type, bool fullName)
        {
            if (type == null)
            {
                return(string.Empty);
            }

            if (type.IsGenericParameter)
            {
                return(type.Name);
            }

            if (!type.IsGenericType && !type.IsArray)
            {
                return(fullName ? type.FullName : type.Name);
            }

            // replace `2 with <type1, type2="">
            var regex     = new Regex("`[0-9]+");
            var evaluator = new GenericsMatchEvaluator(type.GetGenericArguments(), fullName);

            // Remove [[fullName1, ..., fullNameX]]
            var name  = fullName ? type.FullName : type.Name;
            var start = name.IndexOf("[[", StringComparison.Ordinal);
            var end   = name.LastIndexOf("]]", StringComparison.Ordinal);

            if (start > 0 && end > 0)
            {
                name = name.Substring(0, start) + name.Substring(end + 2);
            }
            return(regex.Replace(name, evaluator.Evaluate));
        }
        public static string GetDisplayName(Type type, bool fullName)
        {
            if (type == null)
            {
                return string.Empty;
            }

            if (type.IsGenericParameter)
            {
                return type.Name;
            }

            if (!type.IsGenericType && !type.IsArray)
            {
                return fullName ? type.FullName : type.Name;
            }

            // replace `2 with <type1, type2="">
            var regex = new Regex("`[0-9]+");
            var evaluator = new GenericsMatchEvaluator(type.GetGenericArguments(), fullName);

            // Remove [[fullName1, ..., fullNameX]]
            var name = fullName ? type.FullName : type.Name;
            var start = name.IndexOf("[[", StringComparison.Ordinal);
            var end = name.LastIndexOf("]]", StringComparison.Ordinal);
            if (start > 0 && end > 0)
            {
                name = name.Substring(0, start) + name.Substring(end + 2);
            }
            return regex.Replace(name, evaluator.Evaluate);
        }
        public static string GetDisplayName(this Type type, bool fullName)
        {
            if (type == null)
            {
                return(string.Empty);
            }

            if (type.IsGenericParameter)
            {
                return(type.Name);
            }

            if (!type.IsGenericType && !type.IsArray)
            {
                return(fullName ? type.FullName : type.Name);
            }

            string anonymousTypeName = GetAnonymousTypeName(type);

            // replace `2 with <type1, type2="">
            Regex regex = new Regex("`[0-9]+");
            GenericsMatchEvaluator evaluator = new GenericsMatchEvaluator(type.GetGenericArguments(), fullName);

            // Remove [[fullName1, ..., fullNameX]]
            string name  = fullName ? type.FullName : type.Name;
            int    start = name.IndexOf("[[", StringComparison.Ordinal);
            int    end   = name.LastIndexOf("]]", StringComparison.Ordinal);

            if (start > 0 && end > 0)
            {
                name = name.Substring(0, start) + name.Substring(end + 2);
            }
            string retName = regex.Replace(name, evaluator.Evaluate);

            return(anonymousTypeName.Length != 0 ? retName.Replace(anonymousTypeName, "AnonymousType") : retName);
        }