public string BuildAbbreviatedTypeName(Type type, bool includeVersionAndCulture)
            {
                ArgumentUtility.DebugCheckNotNull("type", type);

                var typeNameBuilder = new StringBuilder(type.FullName.Length + 20 + (includeVersionAndCulture ? type.Assembly.FullName.Length : 0));

                BuildAbbreviatedTypeName(typeNameBuilder, type, includeVersionAndCulture, false);
                return(typeNameBuilder.ToString());
            }
            public string ParseAbbreviatedTypeName(string abbreviatedTypeName)
            {
                ArgumentUtility.DebugCheckNotNull("abbreviatedTypeName", abbreviatedTypeName);

                string       fullTypeName = abbreviatedTypeName;
                const string replace      = @"${asm}.${type}${br}, ${asm}";

                fullTypeName = ReplaceRecursive(_enclosedQualifiedTypeRegex, fullTypeName, replace + "${sn}");
                fullTypeName = ReplaceRecursive(_enclosedTypeRegex, fullTypeName, "[" + replace + "]");
                fullTypeName = _typeRegex.Replace(fullTypeName, replace);

                return(fullTypeName);
            }
            public static bool IsAbbreviatedTypeName(string typeName)
            {
                ArgumentUtility.DebugCheckNotNull("typeName", typeName);

                return(typeName.Contains("::"));
            }