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

XsdTypeName() private method

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

            if (type.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

SoapReflectionImporter::XsdTypeName ( Type type ) : string