APIDocumentationCreator.Parser.ParseGetPropertyParameters C# (CSharp) Метод

ParseGetPropertyParameters() приватный Метод

private ParseGetPropertyParameters ( string parameters, List &objectParameters ) : void
parameters string
objectParameters List
Результат void
        private void ParseGetPropertyParameters(string parameters, out List<APIParameter> objectParameters)
        {
            objectParameters = new List<APIParameter>();

            if (parameters.Trim().Length == 0)
                return;
            if (parameters.Trim().ToLower() == "void")
                return;

            int parameterPosition = 0;
            while (parameterPosition >= 0)
            {
                string definition = "";
                int definitionEnd = parameters.IndexOf("]", parameterPosition) +1;
                if (definitionEnd > 0)
                {
                    int definitionLength = definitionEnd - parameterPosition;
                    definition = parameters.Substring(parameterPosition, definitionLength);
                }

                if (string.IsNullOrEmpty(definition))
                {
                    definition = "[in]";
                    definitionEnd = parameterPosition-1;
                }

                int typeStart = definitionEnd + 1;
                int typeEnd = parameters.IndexOf(" ", typeStart+1);
                int typeLen = typeEnd - typeStart;
                string type = parameters.Substring(typeStart, typeLen).Trim();

                int nameStart = typeEnd + 1;
                int nameEnd = parameters.IndexOf(",", nameStart);
                int nameLength = nameEnd - nameStart;
                if (nameLength <= 0)
                    nameLength = parameters.Length - nameStart;
                string name = parameters.Substring(nameStart, nameLength);

                type = RemoveIDLTokens(type);
                name = RemoveIDLTokens(name);

                APIParameter parameter = new APIParameter();
                parameter.Type = type;
                parameter.Name = name;

                if (definition.StartsWith("[in"))
                    parameter.Input = true;
                else if (definition.StartsWith("[out"))
                    parameter.Input = false;
                else
                    throw new Exception("Unknown type");

                objectParameters.Add(parameter);

                parameterPosition = parameters.IndexOf("[", typeEnd);
                if (parameterPosition < 0)
                {
                    parameterPosition = parameters.IndexOf(",", typeEnd);
                    if (parameterPosition > 0)
                    {
                        parameterPosition++;
                    }
                }
            }
        }