aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Common')
-rw-r--r--MediaBrowser.Common/Kernel/BaseKernel.cs52
-rw-r--r--MediaBrowser.Common/Kernel/IApplicationHost.cs21
-rw-r--r--MediaBrowser.Common/MediaBrowser.Common.csproj3
-rw-r--r--MediaBrowser.Common/packages.config1
4 files changed, 30 insertions, 47 deletions
diff --git a/MediaBrowser.Common/Kernel/BaseKernel.cs b/MediaBrowser.Common/Kernel/BaseKernel.cs
index 202bd3cab..85954cb82 100644
--- a/MediaBrowser.Common/Kernel/BaseKernel.cs
+++ b/MediaBrowser.Common/Kernel/BaseKernel.cs
@@ -18,7 +18,6 @@ using System.Linq;
using System.Reflection;
using System.Threading;
using System.Threading.Tasks;
-using SimpleInjector;
namespace MediaBrowser.Common.Kernel
{
@@ -224,12 +223,6 @@ namespace MediaBrowser.Common.Kernel
public TaskManager TaskManager { get; private set; }
/// <summary>
- /// Gets the iso manager.
- /// </summary>
- /// <value>The iso manager.</value>
- public IIsoManager IsoManager { get; private set; }
-
- /// <summary>
/// Gets the rest services.
/// </summary>
/// <value>The rest services.</value>
@@ -347,20 +340,14 @@ namespace MediaBrowser.Common.Kernel
/// Initializes a new instance of the <see cref="BaseKernel{TApplicationPathsType}" /> class.
/// </summary>
/// <param name="appHost">The app host.</param>
- /// <param name="isoManager">The iso manager.</param>
/// <param name="logger">The logger.</param>
/// <exception cref="System.ArgumentNullException">isoManager</exception>
- protected BaseKernel(IApplicationHost appHost, IIsoManager isoManager, ILogger logger)
+ protected BaseKernel(IApplicationHost appHost, ILogger logger)
{
if (appHost == null)
{
throw new ArgumentNullException("appHost");
}
-
- if (isoManager == null)
- {
- throw new ArgumentNullException("isoManager");
- }
if (logger == null)
{
@@ -368,7 +355,6 @@ namespace MediaBrowser.Common.Kernel
}
ApplicationHost = appHost;
- IsoManager = isoManager;
Logger = logger;
}
@@ -472,11 +458,6 @@ namespace MediaBrowser.Common.Kernel
}
/// <summary>
- /// The ioc container
- /// </summary>
- private readonly Container _iocContainer = new Container();
-
- /// <summary>
/// Composes the parts.
/// </summary>
/// <param name="allTypes">All types.</param>
@@ -486,19 +467,18 @@ namespace MediaBrowser.Common.Kernel
CompositionContainer = GetSafeCompositionContainer(concreteTypes.Select(i => new TypeCatalog(i)));
- ComposeExportedValues(CompositionContainer, _iocContainer);
+ RegisterExportedValues(CompositionContainer);
CompositionContainer.ComposeParts(this);
- ComposePartsWithIocContainer(concreteTypes, _iocContainer);
+ FindParts(concreteTypes);
}
/// <summary>
/// Composes the parts with ioc container.
/// </summary>
/// <param name="allTypes">All types.</param>
- /// <param name="container">The container.</param>
- protected virtual void ComposePartsWithIocContainer(Type[] allTypes, Container container)
+ protected virtual void FindParts(Type[] allTypes)
{
RestServices = GetExports<IRestfulService>(allTypes);
WebSocketListeners = GetExports<IWebSocketListener>(allTypes);
@@ -530,21 +510,20 @@ namespace MediaBrowser.Common.Kernel
/// <returns>System.Object.</returns>
private object Instantiate(Type type)
{
- return _iocContainer.GetInstance(type);
+ return ApplicationHost.CreateInstance(type);
}
/// <summary>
/// Composes the exported values.
/// </summary>
/// <param name="container">The container.</param>
- /// <param name="iocContainer"></param>
- protected virtual void ComposeExportedValues(CompositionContainer container, Container iocContainer)
+ protected virtual void RegisterExportedValues(CompositionContainer container)
{
+ ApplicationHost.Register<IKernel>(this);
+
container.ComposeExportedValue("logger", Logger);
container.ComposeExportedValue("appHost", ApplicationHost);
-
- iocContainer.RegisterSingle(Logger);
- iocContainer.RegisterSingle(ApplicationHost);
+ container.ComposeExportedValue("isoManager", ApplicationHost.Resolve<IIsoManager>());
}
/// <summary>
@@ -739,7 +718,6 @@ namespace MediaBrowser.Common.Kernel
{
DisposeTcpManager();
DisposeTaskManager();
- DisposeIsoManager();
DisposeHttpManager();
DisposeComposableParts();
@@ -754,18 +732,6 @@ namespace MediaBrowser.Common.Kernel
}
/// <summary>
- /// Disposes the iso manager.
- /// </summary>
- private void DisposeIsoManager()
- {
- if (IsoManager != null)
- {
- IsoManager.Dispose();
- IsoManager = null;
- }
- }
-
- /// <summary>
/// Disposes the TCP manager.
/// </summary>
private void DisposeTcpManager()
diff --git a/MediaBrowser.Common/Kernel/IApplicationHost.cs b/MediaBrowser.Common/Kernel/IApplicationHost.cs
index 63c63eb3d..d2b1ab7a2 100644
--- a/MediaBrowser.Common/Kernel/IApplicationHost.cs
+++ b/MediaBrowser.Common/Kernel/IApplicationHost.cs
@@ -43,5 +43,26 @@ namespace MediaBrowser.Common.Kernel
/// </summary>
/// <returns>Task.</returns>
Task UpdateApplication(CancellationToken cancellationToken, IProgress<double> progress);
+
+ /// <summary>
+ /// Creates an instance of type and resolves all constructor dependancies
+ /// </summary>
+ /// <param name="type">The type.</param>
+ /// <returns>System.Object.</returns>
+ object CreateInstance(Type type);
+
+ /// <summary>
+ /// Registers a service that other classes can use as a dependancy.
+ /// </summary>
+ /// <typeparam name="T"></typeparam>
+ /// <param name="obj">The obj.</param>
+ void Register<T>(T obj) where T : class;
+
+ /// <summary>
+ /// Resolves this instance.
+ /// </summary>
+ /// <typeparam name="T"></typeparam>
+ /// <returns>``0.</returns>
+ T Resolve<T>() where T : class;
}
}
diff --git a/MediaBrowser.Common/MediaBrowser.Common.csproj b/MediaBrowser.Common/MediaBrowser.Common.csproj
index ea388e33b..cae26b3df 100644
--- a/MediaBrowser.Common/MediaBrowser.Common.csproj
+++ b/MediaBrowser.Common/MediaBrowser.Common.csproj
@@ -88,9 +88,6 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\ServiceStack.Text.3.9.37\lib\net35\ServiceStack.Text.dll</HintPath>
</Reference>
- <Reference Include="SimpleInjector">
- <HintPath>..\packages\SimpleInjector.2.0.0-beta5\lib\net40-client\SimpleInjector.dll</HintPath>
- </Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Configuration" />
diff --git a/MediaBrowser.Common/packages.config b/MediaBrowser.Common/packages.config
index 96fdb618b..536640094 100644
--- a/MediaBrowser.Common/packages.config
+++ b/MediaBrowser.Common/packages.config
@@ -13,5 +13,4 @@
<package id="ServiceStack.OrmLite.SqlServer" version="3.9.37" targetFramework="net45" />
<package id="ServiceStack.Redis" version="3.9.37" targetFramework="net45" />
<package id="ServiceStack.Text" version="3.9.37" targetFramework="net45" />
- <package id="SimpleInjector" version="2.0.0-beta5" targetFramework="net45" />
</packages> \ No newline at end of file