BaseManager.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System;
  2. namespace MediaBrowser.Common.Kernel
  3. {
  4. /// <summary>
  5. /// Class BaseManager
  6. /// </summary>
  7. /// <typeparam name="TKernelType">The type of the T kernel type.</typeparam>
  8. public abstract class BaseManager<TKernelType> : IDisposable
  9. where TKernelType : class, IKernel
  10. {
  11. /// <summary>
  12. /// The _kernel
  13. /// </summary>
  14. protected readonly TKernelType Kernel;
  15. /// <summary>
  16. /// Initializes a new instance of the <see cref="BaseManager" /> class.
  17. /// </summary>
  18. /// <param name="kernel">The kernel.</param>
  19. /// <exception cref="System.ArgumentNullException">kernel</exception>
  20. protected BaseManager(TKernelType kernel)
  21. {
  22. if (kernel == null)
  23. {
  24. throw new ArgumentNullException("kernel");
  25. }
  26. Kernel = kernel;
  27. }
  28. /// <summary>
  29. /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
  30. /// </summary>
  31. public void Dispose()
  32. {
  33. Dispose(true);
  34. GC.SuppressFinalize(this);
  35. }
  36. /// <summary>
  37. /// Releases unmanaged and - optionally - managed resources.
  38. /// </summary>
  39. /// <param name="dispose"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
  40. protected virtual void Dispose(bool dispose)
  41. {
  42. }
  43. }
  44. }