Exemplo n.º 1
0
        protected internal virtual string FormatGenericInstanceType(string format, GenericInstanceTypeName name, IFormatProvider formatProvider)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }

            var options = GetFormatHelper(formatProvider);

            switch (GetBasicFormat(format))
            {
            case BasicFormat.Compact:
            case BasicFormat.Name:
                if (!options.IncludeTypeParameters)
                {
                    return(name.Name);
                }

                var withoutMangle = Regex.Replace(name.ElementType.Name, @"`\d", string.Empty);

                StringBuilder sb = new StringBuilder(withoutMangle);
                options.PrintGenericArgs(sb, name.GenericArguments);
                return(sb.ToString());

            case BasicFormat.Full:
            case BasicFormat.Roundtrip:
            default:
                return(FullNameFormat.FormatGenericInstanceType(null, name, GetFormatHelper(formatProvider)));
            }
        }
        public override bool Matches(TypeName name)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }

            if (name.IsGenericType && !name.IsGenericTypeDefinition)
            {
                GenericInstanceTypeName other = name as GenericInstanceTypeName;
                return(this.Name == other.Name &&
                       this.NamespaceName.Matches(name.NamespaceName) &&
                       TypeName.MatchGenericArguments(this.GenericArguments, other.GenericArguments));
            }

            return(false);
        }
            protected internal override string FormatGenericInstanceType(string format, GenericInstanceTypeName name, IFormatProvider formatProvider)
            {
                string             nameWithoutMangle = Regex.Replace(name.ElementType.FullName, @"`\d", string.Empty);
                MetadataNameFormat options           = this.GetFormatHelper(formatProvider);

                StringBuilder sb = new StringBuilder(nameWithoutMangle);

                options.PrintGenericArgs(sb, name.GenericArguments);
                return(sb.ToString());
            }