private static IList<Parameter> CreateParameterList(XPathNavigator api) { List<Parameter> parameters = new List<Parameter>(); XPathNodeIterator parameterNodes = api.Select("parameters/parameter"); foreach(XPathNavigator parameterNode in parameterNodes) { string name = parameterNode.GetAttribute("name", String.Empty); XPathNavigator type = parameterNode.SelectSingleNode("*[1]"); Parameter parameter = new Parameter(name, CreateTypeReference(type)); parameters.Add(parameter); } return parameters; }
internal static void WriteSimpleMemberReference(SimpleMemberReference member, DisplayOptions options, XmlWriter writer, LinkTextResolver resolver) { string cer = member.Id; string typeCer, memberName, arguments; DecomposeMemberIdentifier(cer, out typeCer, out memberName, out arguments); if((options & DisplayOptions.ShowContainer) > 0) { SimpleTypeReference type = CreateSimpleTypeReference(typeCer); WriteSimpleTypeReference(type, options & ~DisplayOptions.ShowContainer, writer); writer.WriteString("."); } // Change this so that we deal with EII names correctly, too writer.WriteString(memberName); if((options & DisplayOptions.ShowParameters) > 0) { if(String.IsNullOrEmpty(arguments)) { Parameter[] parameters = new Parameter[0]; resolver.WriteMethodParameters(parameters, writer); } else { IList<string> parameterTypeCers = SeparateTypes(arguments); Parameter[] parameters = new Parameter[parameterTypeCers.Count]; for(int i = 0; i < parameterTypeCers.Count; i++) { TypeReference parameterType = CreateTypeReference(parameterTypeCers[i]); if(parameterType == null) parameterType = new NamedTemplateTypeReference("UAT"); parameters[i] = new Parameter(String.Empty, parameterType); } resolver.WriteMethodParameters(parameters, writer); } } }