diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
index d3c92910f3..e51980a584 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
@@ -244,6 +244,7 @@
+
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Globals/ServiceContainer.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Globals/ServiceContainer.cs
new file mode 100644
index 0000000000..1f9918dfd3
--- /dev/null
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Globals/ServiceContainer.cs
@@ -0,0 +1,54 @@
+/*
+ * Created by SharpDevelop.
+ * User: Peter Forstmeier
+ * Date: 11.02.2011
+ * Time: 20:15
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+using System.Collections.Generic;
+
+namespace ICSharpCode.Reports.Core.Globals
+{
+ ///
+ /// Description of .
+ ///
+ public static class ServiceContainer
+
+ {
+ private static Dictionary services = new Dictionary();
+
+ public static void InitializeServiceContainer()
+ {
+
+ }
+
+ public static void AddService(T service)
+ {
+ services.Add(typeof(T), service);
+ }
+
+
+ public static bool Contains (Type serviceType)
+ {
+ object service;
+
+ services.TryGetValue(serviceType, out service);
+ if (service != null) {
+ return true;
+ }
+ return false;
+ }
+
+
+ public static object GetService(Type serviceType)
+ {
+ object service;
+
+ services.TryGetValue(serviceType, out service);
+
+ return service;
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Globals/ServiceContainerFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Globals/ServiceContainerFixture.cs
new file mode 100644
index 0000000000..bc4aec79a3
--- /dev/null
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Globals/ServiceContainerFixture.cs
@@ -0,0 +1,84 @@
+/*
+ * Created by SharpDevelop.
+ * User: Peter Forstmeier
+ * Date: 11.02.2011
+ * Time: 20:26
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+using NUnit.Framework;
+using ICSharpCode.Reports.Core.Globals;
+
+
+namespace ICSharpCode.Reports.Core.Test.Globals
+{
+
+ public interface ITestInterface
+ {
+ bool Test();
+ }
+
+
+ public class MyTestImplementation : ITestInterface
+ {
+
+
+ public bool Test()
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+
+ [TestFixture]
+ public class ServiceContainerFixture
+ {
+ [Test]
+ public void GetServiceFromContainer()
+ {
+ var service = ServiceContainer.GetService(typeof(ITestInterface));
+ Assert.That (service,Is.Not.Null);
+ Assert.That (service,Is.AssignableFrom(typeof(MyTestImplementation)));
+ Assert.That (service,Is.AssignableTo (typeof(ITestInterface)));
+ }
+
+
+ [Test]
+ [ExpectedException(typeof(System.ArgumentException))]
+ public void ShouldNotAddServiceMoreThanOneTime()
+ {
+ ServiceContainer.AddService(new MyTestImplementation());
+ }
+
+
+ [Test]
+ public void ContainsService()
+ {
+ bool contains = ServiceContainer.Contains(typeof(ITestInterface));
+ Assert.That(contains,Is.True);
+ }
+
+
+ [Test]
+ public void DosNotContainsService()
+ {
+ bool contains = ServiceContainer.Contains(typeof(IServiceProvider));
+ Assert.That(contains,Is.False);
+ }
+
+
+ [TestFixtureSetUp]
+ public void Init()
+ {
+ ServiceContainer.InitializeServiceContainer();
+ ServiceContainer.AddService(new MyTestImplementation());
+ }
+
+ [TestFixtureTearDown]
+ public void Dispose()
+ {
+ // TODO: Add tear down code.
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj
index 54df47fb98..ac0605e97a 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj
@@ -80,6 +80,7 @@
+
@@ -121,6 +122,7 @@
+