diff options
Diffstat (limited to 'MediaBrowser.ServerApplication')
| -rw-r--r-- | MediaBrowser.ServerApplication/App.xaml.cs | 50 | ||||
| -rw-r--r-- | MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj | 30 | ||||
| -rw-r--r-- | MediaBrowser.ServerApplication/packages.config | 5 |
3 files changed, 74 insertions, 11 deletions
diff --git a/MediaBrowser.ServerApplication/App.xaml.cs b/MediaBrowser.ServerApplication/App.xaml.cs index 4aa3cdbb4..1b6b6f98e 100644 --- a/MediaBrowser.ServerApplication/App.xaml.cs +++ b/MediaBrowser.ServerApplication/App.xaml.cs @@ -11,6 +11,9 @@ using MediaBrowser.Model.Logging; using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.Updates; using MediaBrowser.Networking.Management; +using MediaBrowser.Networking.Udp; +using MediaBrowser.Networking.Web; +using MediaBrowser.Networking.WebSocket; using MediaBrowser.Server.Uninstall; using MediaBrowser.ServerApplication.Implementations; using Microsoft.Win32; @@ -195,10 +198,10 @@ namespace MediaBrowser.ServerApplication /// </summary> protected async void LoadKernel() { - RegisterResources(); - Kernel = new Kernel(this, Logger); + RegisterResources(); + try { new MainWindow(Logger).Show(); @@ -511,15 +514,18 @@ namespace MediaBrowser.ServerApplication /// </summary> private void RegisterResources() { - Register<IApplicationHost>(this); - Register(Logger); + RegisterSingleInstance<IApplicationHost>(this); + RegisterSingleInstance(Logger); IsoManager = new PismoIsoManager(Logger); - Register(IsoManager); - Register<IBlurayExaminer>(new BdInfoExaminer()); - Register<IZipClient>(new DotNetZipClient()); - Register(typeof (INetworkManager), typeof (NetworkManager)); + RegisterSingleInstance(IsoManager); + RegisterSingleInstance<IBlurayExaminer>(() => new BdInfoExaminer()); + RegisterSingleInstance<INetworkManager>(() => new NetworkManager()); + RegisterSingleInstance<IZipClient>(() => new DotNetZipClient()); + RegisterSingleInstance<IWebSocketServer>(() => new AlchemyServer(Logger)); + Register(typeof(IUdpServer), typeof(UdpServer)); + RegisterSingleInstance<IHttpServer>(() => new HttpServer(this, Kernel, Logger, "Media Browser", "index.html")); } /// <summary> @@ -546,20 +552,42 @@ namespace MediaBrowser.ServerApplication /// </summary> /// <typeparam name="T"></typeparam> /// <param name="obj">The obj.</param> - public void Register<T>(T obj) + public void RegisterSingleInstance<T>(T obj) where T : class { _container.RegisterSingle(obj); } /// <summary> + /// Registers the specified func. + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="func">The func.</param> + public void Register<T>(Func<T> func) + where T : class + { + _container.Register(func); + } + + /// <summary> + /// Registers the single instance. + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="func">The func.</param> + public void RegisterSingleInstance<T>(Func<T> func) + where T : class + { + _container.RegisterSingle(func); + } + + /// <summary> /// Resolves this instance. /// </summary> /// <typeparam name="T"></typeparam> /// <returns>``0.</returns> public T Resolve<T>() { - return (T)_container.GetRegistration(typeof (T), true).GetInstance(); + return (T)_container.GetRegistration(typeof(T), true).GetInstance(); } /// <summary> @@ -569,7 +597,7 @@ namespace MediaBrowser.ServerApplication /// <returns>``0.</returns> public T TryResolve<T>() { - var result = _container.GetRegistration(typeof (T), false); + var result = _container.GetRegistration(typeof(T), false); if (result == null) { diff --git a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj index 9b27351a1..0a364756a 100644 --- a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj +++ b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj @@ -128,6 +128,36 @@ <SpecificVersion>False</SpecificVersion> <HintPath>..\ThirdParty\UPnP\Libs\Platinum.Managed.dll</HintPath> </Reference> + <Reference Include="ServiceStack, Version=3.9.37.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\packages\ServiceStack.3.9.37\lib\net35\ServiceStack.dll</HintPath> + </Reference> + <Reference Include="ServiceStack.Common, Version=3.9.37.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\packages\ServiceStack.Common.3.9.37\lib\net35\ServiceStack.Common.dll</HintPath> + </Reference> + <Reference Include="ServiceStack.Interfaces, Version=3.9.37.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\packages\ServiceStack.Common.3.9.37\lib\net35\ServiceStack.Interfaces.dll</HintPath> + </Reference> + <Reference Include="ServiceStack.OrmLite, Version=3.9.37.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\packages\ServiceStack.OrmLite.SqlServer.3.9.37\lib\ServiceStack.OrmLite.dll</HintPath> + </Reference> + <Reference Include="ServiceStack.OrmLite.SqlServer"> + <HintPath>..\packages\ServiceStack.OrmLite.SqlServer.3.9.37\lib\ServiceStack.OrmLite.SqlServer.dll</HintPath> + </Reference> + <Reference Include="ServiceStack.Redis"> + <HintPath>..\packages\ServiceStack.Redis.3.9.37\lib\net35\ServiceStack.Redis.dll</HintPath> + </Reference> + <Reference Include="ServiceStack.ServiceInterface, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\packages\ServiceStack.3.9.37\lib\net35\ServiceStack.ServiceInterface.dll</HintPath> + </Reference> + <Reference Include="ServiceStack.Text, Version=3.9.37.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\packages\ServiceStack.Text.3.9.37\lib\net35\ServiceStack.Text.dll</HintPath> + </Reference> <Reference Include="SimpleInjector, Version=2.0.0.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\packages\SimpleInjector.2.0.0-beta5\lib\net40-client\SimpleInjector.dll</HintPath> diff --git a/MediaBrowser.ServerApplication/packages.config b/MediaBrowser.ServerApplication/packages.config index e1beae6da..28d6202f8 100644 --- a/MediaBrowser.ServerApplication/packages.config +++ b/MediaBrowser.ServerApplication/packages.config @@ -3,6 +3,11 @@ <package id="DotNetZip" version="1.9.1.8" targetFramework="net45" /> <package id="Hardcodet.Wpf.TaskbarNotification" version="1.0.4.0" targetFramework="net45" /> <package id="NLog" version="2.0.0.2000" targetFramework="net45" /> + <package id="ServiceStack" version="3.9.37" targetFramework="net45" /> + <package id="ServiceStack.Common" version="3.9.37" targetFramework="net45" /> + <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" /> <package id="System.Data.SQLite" version="1.0.84.0" targetFramework="net45" /> </packages>
\ No newline at end of file |
