示例#1
0
        private IEnumerable <ParameterDoc> MergeParameters(
            IList <ParameterDoc> reflectedParameters,
            IList <ParameterDoc> documentedParameters)
        {
            List <ParameterDoc> result = new List <ParameterDoc>();

            Dictionary <string, int> lookup = reflectedParameters
                                              .Select((t, index) => new KeyValuePair <string, int>(t.Name, index))
                                              .ToDictionary(p => p.Key, p => p.Value);

            result.AddRange(reflectedParameters);

            foreach (ParameterDoc parameterDoc in documentedParameters)
            {
                if (lookup.TryGetValue(parameterDoc.Name, out int index))
                {
                    ParameterDoc reflectedParameterDoc = result[index];
                    result[index] = new ParameterDoc(reflectedParameterDoc.Name,
                                                     reflectedParameterDoc.ParameterType, reflectedParameterDoc.ParameterKind,
                                                     parameterDoc.Description);
                }
                else
                {
                    result.Add(parameterDoc);
                }
            }

            return(result);
        }
示例#2
0
 public MethodDoc AddParameter(ParameterDoc parameter)
 => WithParameters(Parameters.Add(parameter));