Esempio n. 1
0
        private string GetMethodResponse(XElement element, string name, out ClassInfo returnType)
        {
            returnType = null;
            XElement node = (XElement)element.NextNode;

            if (node == null)
            {
                return(null);
            }
            XAttribute attribute = node.Attributes().FirstOrDefault(x => x.Name.LocalName.Equals("name"));

            if (attribute != null && attribute.Value == name + "Response")
            {
                string className = name + "Response";
                if (BaseClassInfo.SkipMethods.Contains(className))
                {
                    return(null);
                }
                BaseClassInfo.SkipMethods.Add(className);
                List <XElement> elements = new List <XElement>();
                FindAllElements(node, elements);
                if (elements.Count > 1)
                {
                    StringBuilder classBuilder = new StringBuilder();
                    ClassInfo     classInfo    = new ClassInfo()
                    {
                        Name = className
                    };
                    foreach (XElement item in elements)
                    {
                        classInfo.PropertyInfoes.Add(new PropertyInfo()
                        {
                            ReturnType = CleanType(item.Attribute("type").Value), Name = item.Attribute("name").Value
                        });
                    }
                    ClassesGenerated.Add(classInfo);
                    returnType = classInfo;
                    return(className);
                }
                else if (elements.Count == 1)
                {
                    XElement first = elements.First();
                    return(CleanType(first.Attribute("type").Value));
                }
                else
                {
                    return("void");
                }
            }
            return("void");
        }
Esempio n. 2
0
        public List <ClassInfo> Generate(string url)
        {
            using (WebClient client = new WebClient())
            {
                XDocument doc       = XDocument.Parse(client.DownloadString(url));
                string    className = doc.Elements().FirstOrDefault().Attribute("name").Value;
                BaseClassInfo = new ClassInfo()
                {
                    Name = className, TargetNameSpace = doc.Elements().FirstOrDefault().Attribute("targetNamespace").Value, Url = url.Substring(0, url.LastIndexOf("wsdl", StringComparison.OrdinalIgnoreCase)) + "service"
                };
                ClassesGenerated.Add(BaseClassInfo);
                XmlReader(doc);

                return(ClassesGenerated);
            }
        }