public Dictionary <string, string> GetParameterTooltips()
        {
            Dictionary <string, string> pts = null;
            ClassPointer owner = (ClassPointer)Owner;

            if (owner.BaseClassPointer != null)
            {
                SortedList <string, ConstructorClass> sorted = owner.GetBaseConstructorsSortedByParameterCount();
                for (int i = sorted.Count - 1; i >= 0; i--)
                {
                    ConstructorClass baseConstructor = sorted.ElementAt <KeyValuePair <string, ConstructorClass> >(i).Value;
                    if (this.IsDerivedFrom(baseConstructor))
                    {
                        pts = baseConstructor.GetParameterTooltips();
                        break;
                    }
                }
                if (pts == null)
                {
                    pts = new Dictionary <string, string>();
                }
            }
            else
            {
                string methodDesc;
                string retDesc;
                pts = PMEXmlParser.GetMethodDescription(owner.BaseClassType, Info, out methodDesc, out retDesc);
            }
            if (_fixedParameterCount < ParameterCount)
            {
                for (int i = _fixedParameterCount; i < ParameterCount; i++)
                {
                    if (!string.IsNullOrEmpty(Parameters[i].Description))
                    {
                        pts.Add(Parameters[i].Name, Parameters[i].Description);
                    }
                }
            }
            return(pts);
        }