diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/BuildOptions.cs b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/BuildOptions.cs index 4d1379fa13..fb3961bb46 100644 --- a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/BuildOptions.cs +++ b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/BuildOptions.cs @@ -1,4 +1,4 @@ -// +// // 2002-2005 AlphaSierraPapa // GNU General Public License // @@ -49,7 +49,6 @@ namespace VBNetBinding.OptionPanels public override bool StorePanelContents() { - ((VBNetProject)project).RefreshMyType(); return base.StorePanelContents(); } } diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/VBNetProject.cs b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/VBNetProject.cs index 1969c0e017..b9e6b18689 100644 --- a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/VBNetProject.cs +++ b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/Project/VBNetProject.cs @@ -1,4 +1,4 @@ -// +// // 2002-2005 AlphaSierraPapa // GNU General Public License // @@ -35,18 +35,21 @@ namespace VBNetBinding /// public class VBNetProject : MSBuildProject { - public void RefreshMyType() + public override void SetProperty(string configurationName, string platform, string property, T value, PropertyStorageLocation location) { - switch (this.OutputType) { - case OutputType.WinExe: - SetProperty("MyType", "WindowsForms"); - break; - case OutputType.Exe: - SetProperty("MyType", "Console"); - break; - default: - SetProperty("MyType", "Windows"); - break; + base.SetProperty(configurationName, platform, property, value, location); + if (property == "OutputType") { + switch (this.OutputType) { + case OutputType.WinExe: + base.SetProperty(configurationName, platform, "MyType", "WindowsForms", location); + break; + case OutputType.Exe: + base.SetProperty(configurationName, platform, "MyType", "Console", location); + break; + default: + base.SetProperty(configurationName, platform, "MyType", "Windows", location); + break; + } } } diff --git a/src/Main/Base/Project/Src/Project/AbstractProject.cs b/src/Main/Base/Project/Src/Project/AbstractProject.cs index 332a667c7c..408efb1ad2 100644 --- a/src/Main/Base/Project/Src/Project/AbstractProject.cs +++ b/src/Main/Base/Project/Src/Project/AbstractProject.cs @@ -338,7 +338,7 @@ namespace ICSharpCode.SharpDevelop.Project SetProperty(this.Configuration, this.Platform, property, value, location); } - public void SetProperty(string configurationName, string platform, string property, T value, PropertyStorageLocation location) + public virtual void SetProperty(string configurationName, string platform, string property, T value, PropertyStorageLocation location) { string configurationKey = platform != null ? configurationName + "|" + platform : configurationName; PropertyGroup pg; diff --git a/src/Main/Base/Project/Src/Services/RefactoringService/RefactoringMenuBuilder.cs b/src/Main/Base/Project/Src/Services/RefactoringService/RefactoringMenuBuilder.cs index 3e6e8b556f..80f19ccf9c 100644 --- a/src/Main/Base/Project/Src/Services/RefactoringService/RefactoringMenuBuilder.cs +++ b/src/Main/Base/Project/Src/Services/RefactoringService/RefactoringMenuBuilder.cs @@ -64,9 +64,14 @@ namespace ICSharpCode.SharpDevelop.Refactoring if (!lineHasDefinitions) { ResolveResult rr = ResolveAtCaret(textEditorControl, textArea); - MemberResolveResult mrr = rr as MemberResolveResult; - if (mrr != null) { - resultItems.Add(MakeItem(mrr.ResolvedMember)); + ToolStripMenuItem item = null; + if (rr is MemberResolveResult) { + item = MakeItem(((MemberResolveResult)rr).ResolvedMember); + } else if (rr is TypeResolveResult) { + item = MakeItem(((TypeResolveResult)rr).ResolvedClass); + } + if (item != null) { + resultItems.Add(item); } } @@ -82,12 +87,14 @@ namespace ICSharpCode.SharpDevelop.Refactoring ToolStripMenuItem MakeItem(IMember member) { + if (member == null) return null; return MakeItem(MemberNode.Create(member), member.DeclaringType.CompilationUnit, member.Region); } ToolStripMenuItem MakeItem(IClass c) { + if (c == null) return null; return MakeItem(new ClassNode(c.ProjectContent.Project, c), c.CompilationUnit, c.Region); }