diff --git a/src/Main/Base/Project/Src/Services/HelpProvider.cs b/src/Main/Base/Project/Src/Services/HelpProvider.cs index eb923d6d1b..95c4bf0007 100644 --- a/src/Main/Base/Project/Src/Services/HelpProvider.cs +++ b/src/Main/Base/Project/Src/Services/HelpProvider.cs @@ -21,6 +21,8 @@ namespace ICSharpCode.SharpDevelop public static void ShowHelp(IClass c) { + if (c == null) + throw new ArgumentNullException("c"); foreach (HelpProvider p in GetProviders()) { if (p.TryShowHelp(c)) return; @@ -35,6 +37,8 @@ namespace ICSharpCode.SharpDevelop public static void ShowHelp(IMember m) { + if (m == null) + throw new ArgumentNullException("m"); foreach (HelpProvider p in GetProviders()) { if (p.TryShowHelp(m)) return; @@ -44,11 +48,17 @@ namespace ICSharpCode.SharpDevelop public virtual bool TryShowHelp(IMember m) { - return TryShowHelp(m.FullyQualifiedName); + IMethod method = m as IMethod; + if (method != null && method.IsConstructor) + return TryShowHelp(m.DeclaringType.FullyQualifiedName + "." + m.DeclaringType.Name); + else + return TryShowHelp(m.FullyQualifiedName); } public static void ShowHelp(string fullTypeName) { + if (fullTypeName == null) + throw new ArgumentNullException("fullTypeName"); foreach (HelpProvider p in GetProviders()) { if (p.TryShowHelp(fullTypeName)) return; @@ -64,6 +74,8 @@ namespace ICSharpCode.SharpDevelop public static void ShowHelpByKeyword(string keyword) { + if (keyword == null) + throw new ArgumentNullException("keyword"); foreach (HelpProvider p in GetProviders()) { if (p.TryShowHelpByKeyword(keyword)) return;