diff options
Diffstat (limited to 'MediaBrowser.Common')
| -rw-r--r-- | MediaBrowser.Common/Kernel/BaseKernel.cs | 52 | ||||
| -rw-r--r-- | MediaBrowser.Common/Kernel/IApplicationHost.cs | 21 | ||||
| -rw-r--r-- | MediaBrowser.Common/MediaBrowser.Common.csproj | 3 | ||||
| -rw-r--r-- | MediaBrowser.Common/packages.config | 1 |
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 |
