diff --git a/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin b/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin
index ce4ae66e32..3e0f0d2e62 100644
--- a/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin
+++ b/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin
@@ -77,6 +77,15 @@
+
+
+
+
+
+
();
- var modelFactory = SD.GetService();
- if ((classBrowser != null) && (modelFactory != null)) {
+ if (classBrowser != null) {
IAssemblyModel assemblyModel = (IAssemblyModel) parameter;
// Create a new copy of this assembly model
- IAssemblyModel newAssemblyModel = modelFactory.SafelyCreateAssemblyModelFromFile(assemblyModel.Context.Location);
+ IAssemblyModel newAssemblyModel = SD.AssemblyParserService.GetAssemblyModelSafe(new ICSharpCode.Core.FileName(assemblyModel.Context.Location), true);
if (newAssemblyModel != null)
classBrowser.MainAssemblyList.Assemblies.Add(newAssemblyModel);
}
diff --git a/src/AddIns/Debugger/Debugger.AddIn/Service/DebuggerCommands.cs b/src/AddIns/Debugger/Debugger.AddIn/Service/DebuggerCommands.cs
index 76b61a22a7..c6ab15ce1a 100644
--- a/src/AddIns/Debugger/Debugger.AddIn/Service/DebuggerCommands.cs
+++ b/src/AddIns/Debugger/Debugger.AddIn/Service/DebuggerCommands.cs
@@ -115,7 +115,7 @@ namespace Debugger.AddIn
}
} else {
OpenFileDialog dialog = new OpenFileDialog() {
- Filter = ".NET Executable (*.exe) | *.exe",
+ Filter = ".NET executable|*.exe",
RestoreDirectory = true,
DefaultExt = "exe"
};
diff --git a/src/Main/Base/Project/Dom/ModelFactoryExtensions.cs b/src/Main/Base/Project/Dom/ModelFactoryExtensions.cs
deleted file mode 100644
index 18cb634bd2..0000000000
--- a/src/Main/Base/Project/Dom/ModelFactoryExtensions.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
-// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
-
-using System;
-using System.Linq;
-using System.IO;
-using ICSharpCode.Core;
-using ICSharpCode.NRefactory;
-using ICSharpCode.NRefactory.TypeSystem;
-using Mono.Cecil;
-using ICSharpCode.SharpDevelop.Parser;
-
-namespace ICSharpCode.SharpDevelop.Dom
-{
- public static class ModelFactoryExtensions
- {
- ///
- /// Creates an from a file name and catches
- /// errors by showing messages to user.
- ///
- /// Model factory.
- /// Assembly file name.
- ///
- /// Created or null,
- /// if model couldn't be created.
- ///
- public static IAssemblyModel SafelyCreateAssemblyModelFromFile(this IModelFactory modelFactory, string fileName)
- {
- try {
- return SD.AssemblyParserService.GetAssemblyModel(new FileName(fileName), true, modelFactory);
- } catch (BadImageFormatException) {
- SD.MessageService.ShowWarningFormatted("${res:ICSharpCode.SharpDevelop.Dom.AssemblyInvalid}", Path.GetFileName(fileName));
- } catch (FileNotFoundException) {
- SD.MessageService.ShowWarningFormatted("${res:ICSharpCode.SharpDevelop.Dom.AssemblyNotAccessible}", fileName);
- }
-
- return null;
- }
- }
-}
\ No newline at end of file
diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
index cdb63cb3f9..b96824ede0 100644
--- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
+++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
@@ -118,7 +118,6 @@
-
diff --git a/src/Main/Base/Project/Parser/IAssemblyParserService.cs b/src/Main/Base/Project/Parser/IAssemblyParserService.cs
index 9562056fed..4dc13180d4 100644
--- a/src/Main/Base/Project/Parser/IAssemblyParserService.cs
+++ b/src/Main/Base/Project/Parser/IAssemblyParserService.cs
@@ -57,6 +57,18 @@ namespace ICSharpCode.SharpDevelop.Parser
/// Creates an IAssemblyModel for the given assembly file.
///
IAssemblyModel GetAssemblyModel(FileName fileName, bool includeInternalMembers = false);
+
+ ///
+ /// Creates an from a file name and catches
+ /// errors by showing messages to user.
+ ///
+ /// Model factory.
+ /// Assembly file name.
+ ///
+ /// Created or null,
+ /// if model couldn't be created.
+ ///
+ IAssemblyModel GetAssemblyModelSafe(FileName fileName, bool includeInternalMembers = false);
}
public interface IAssemblySearcher
diff --git a/src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserPad.cs b/src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserPad.cs
index 9381f37bff..4cddf46b43 100644
--- a/src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserPad.cs
+++ b/src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserPad.cs
@@ -230,7 +230,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
{
var modelFactory = SD.GetRequiredService();
try {
- return SD.AssemblyParserService.GetAssemblyModel(new FileName(fileName), false, modelFactory);
+ return SD.AssemblyParserService.GetAssemblyModel(new FileName(fileName), true);
} catch (Exception) {
// Special AssemblyModel for unresolved file references
IEntityModelContext unresolvedContext = new UnresolvedAssemblyEntityModelContext(Path.GetFileName(fileName), fileName);
diff --git a/src/Main/SharpDevelop/Dom/ClassBrowser/Commands.cs b/src/Main/SharpDevelop/Dom/ClassBrowser/Commands.cs
index fd72bb2a5f..5caa8a5720 100644
--- a/src/Main/SharpDevelop/Dom/ClassBrowser/Commands.cs
+++ b/src/Main/SharpDevelop/Dom/ClassBrowser/Commands.cs
@@ -24,9 +24,8 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
openFileDialog.Filter = "Assembly files (*.exe, *.dll)|*.exe;*.dll";
openFileDialog.CheckFileExists = true;
openFileDialog.CheckPathExists = true;
- if (openFileDialog.ShowDialog() ?? false)
- {
- IAssemblyModel assemblyModel = modelFactory.SafelyCreateAssemblyModelFromFile(openFileDialog.FileName);
+ if (openFileDialog.ShowDialog() ?? false) {
+ IAssemblyModel assemblyModel = SD.AssemblyParserService.GetAssemblyModelSafe(new ICSharpCode.Core.FileName(openFileDialog.FileName), true);
if (assemblyModel != null)
classBrowser.MainAssemblyList.Assemblies.Add(assemblyModel);
}
@@ -48,7 +47,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
if (gacDialog.ShowDialog() ?? false)
{
foreach (string assemblyFile in gacDialog.SelectedFileNames) {
- IAssemblyModel assemblyModel = modelFactory.SafelyCreateAssemblyModelFromFile(assemblyFile);
+ IAssemblyModel assemblyModel = SD.AssemblyParserService.GetAssemblyModelSafe(new ICSharpCode.Core.FileName(assemblyFile), true);
if (assemblyModel != null)
classBrowser.MainAssemblyList.Assemblies.Add(assemblyModel);
}
diff --git a/src/Main/SharpDevelop/Parser/AssemblyParserService.cs b/src/Main/SharpDevelop/Parser/AssemblyParserService.cs
index 4690909f61..d976b97e0c 100644
--- a/src/Main/SharpDevelop/Parser/AssemblyParserService.cs
+++ b/src/Main/SharpDevelop/Parser/AssemblyParserService.cs
@@ -330,5 +330,18 @@ namespace ICSharpCode.SharpDevelop.Parser
return model;
}
+
+ public IAssemblyModel GetAssemblyModelSafe(FileName fileName, bool includeInternalMembers = false)
+ {
+ try {
+ return GetAssemblyModel(fileName, includeInternalMembers);
+ } catch (BadImageFormatException) {
+ SD.MessageService.ShowWarningFormatted("${res:ICSharpCode.SharpDevelop.Dom.AssemblyInvalid}", Path.GetFileName(fileName));
+ } catch (FileNotFoundException) {
+ SD.MessageService.ShowWarningFormatted("${res:ICSharpCode.SharpDevelop.Dom.AssemblyNotAccessible}", fileName);
+ }
+
+ return null;
+ }
}
}