diff --git a/src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs b/src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs
index 82470dbb9f0..93f245457bc 100644
--- a/src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs
+++ b/src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs
@@ -57,7 +57,7 @@ public static class WorkbenchSingleton
}
}
- public static IStatusBarService StatusBar {
+ public static IStatusBarService StatusBar {
get {
return workbench != null ? workbench.StatusBar : null;
}
@@ -77,10 +77,12 @@ public static void InitializeWorkbench(IWorkbench workbench, IWorkbenchLayout la
Project.CustomToolsService.Initialize();
Project.BuildModifiedProjectsOnlyService.Initialize();
- var messageService = (WinFormsMessageService)Core.Services.ServiceManager.Instance.MessageService;
- messageService.DialogOwner = workbench.MainWin32Window;
- Debug.Assert(messageService.DialogOwner != null);
- messageService.DialogSynchronizeInvoke = workbench.SynchronizingObject;
+ var messageService = Core.Services.ServiceManager.Instance.MessageService as IDialogMessageService;
+ if (messageService != null) {
+ messageService.DialogOwner = workbench.MainWin32Window;
+ Debug.Assert(messageService.DialogOwner != null);
+ messageService.DialogSynchronizeInvoke = workbench.SynchronizingObject;
+ }
workbench.Initialize();
workbench.SetMemento(PropertyService.Get(workbenchMemento, new Properties()));
diff --git a/src/Main/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj b/src/Main/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj
index 11cbbce1a9c..bc4adb189bf 100644
--- a/src/Main/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj
+++ b/src/Main/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj
@@ -59,6 +59,7 @@
+
diff --git a/src/Main/ICSharpCode.Core.WinForms/MessageService/IDialogMessageService.cs b/src/Main/ICSharpCode.Core.WinForms/MessageService/IDialogMessageService.cs
new file mode 100644
index 00000000000..83d83085787
--- /dev/null
+++ b/src/Main/ICSharpCode.Core.WinForms/MessageService/IDialogMessageService.cs
@@ -0,0 +1,24 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+using System;
+using System.ComponentModel;
+using System.Windows.Forms;
+
+using ICSharpCode.Core.Services;
+
+namespace ICSharpCode.Core.WinForms
+{
+ ///
+ /// Message service that sets an owner for dialog boxes.
+ ///
+ public interface IDialogMessageService : IMessageService
+ {
+ IWin32Window DialogOwner { set; get; }
+ ISynchronizeInvoke DialogSynchronizeInvoke { set; get; }
+ }
+}
diff --git a/src/Main/ICSharpCode.Core.WinForms/MessageService/WinFormsMessageService.cs b/src/Main/ICSharpCode.Core.WinForms/MessageService/WinFormsMessageService.cs
index 888b0030f02..6809f7a0e77 100644
--- a/src/Main/ICSharpCode.Core.WinForms/MessageService/WinFormsMessageService.cs
+++ b/src/Main/ICSharpCode.Core.WinForms/MessageService/WinFormsMessageService.cs
@@ -18,7 +18,7 @@ namespace ICSharpCode.Core.WinForms
/// All text displayed using the MessageService is passed to the
/// to replace ${res} markers.
///
- public class WinFormsMessageService : IMessageService
+ public class WinFormsMessageService : IDialogMessageService
{
///
/// Gets/Sets the form used as owner for shown message boxes.