System.Xml.Serialization.XmlReflectionImporter.XsdTypeName C# (CSharp) Method

XsdTypeName() private method

private XsdTypeName ( Type type, XmlAttributes a, string name ) : string
type System.Type
a XmlAttributes
name string
return string
        internal string XsdTypeName(Type type, XmlAttributes a, string name)
        {
            string typeName = name;
            if (a.XmlType != null && a.XmlType.TypeName.Length > 0)
                typeName = a.XmlType.TypeName;

            if (type.GetTypeInfo().IsGenericType && typeName.IndexOf('{') >= 0)
            {
                Type genType = type.GetGenericTypeDefinition();
                Type[] names = genType.GetGenericArguments();
                Type[] types = type.GetGenericArguments();

                for (int i = 0; i < names.Length; i++)
                {
                    string argument = "{" + names[i] + "}";
                    if (typeName.Contains(argument))
                    {
                        typeName = typeName.Replace(argument, XsdTypeName(types[i]));
                        if (typeName.IndexOf('{') < 0)
                        {
                            break;
                        }
                    }
                }
            }
            return typeName;
        }

Same methods

XmlReflectionImporter::XsdTypeName ( Type type ) : string