You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
2.0 KiB

3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
  1. using Apewer.Network;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Diagnostics;
  5. using System.Text;
  6. namespace Apewer.Web
  7. {
  8. /// <summary>API 上下文。</summary>
  9. public sealed class ApiContext
  10. {
  11. #region 构造参数
  12. private ApiInvoker _invoker = null;
  13. private ApiProvider _provider = null;
  14. private ApiEntries _entries = null;
  15. private DateTime _beginning = DateTime.Now;
  16. private ApiOptions _options = null;
  17. /// <summary>此上下文启动的时间。</summary>
  18. public DateTime Beginning { get => _beginning; }
  19. /// <summary>API 调用器。</summary>
  20. public ApiInvoker Invoker { get => _invoker; }
  21. /// <summary>API 提供程序。</summary>
  22. public ApiProvider Provider { get => _provider; }
  23. /// <summary>API 入口集。</summary>
  24. public ApiEntries Entries { get => _entries; }
  25. /// <summary>API 选项。</summary>
  26. public ApiOptions Options { get => _options; }
  27. #endregion
  28. #region 执行过程中产生的内容
  29. /// <summary>API 入口。</summary>
  30. public ApiEntry Entry { get; internal set; }
  31. /// <summary>API 请求。</summary>
  32. public ApiRequest Request { get; internal set; }
  33. /// <summary>API 响应。</summary>
  34. public ApiResponse Response { get; internal set; }
  35. /// <summary>API 控制器实例。</summary>
  36. public ApiController Controller { get; internal set; }
  37. #endregion
  38. internal ApiContext(ApiInvoker invoker, ApiProvider provider, ApiEntries entries)
  39. {
  40. if (invoker == null) throw new ArgumentNullException(nameof(invoker));
  41. if (provider == null) throw new ArgumentNullException(nameof(provider));
  42. if (entries == null) throw new ArgumentNullException(nameof(entries));
  43. _invoker = invoker;
  44. _provider = provider;
  45. _entries = entries;
  46. _options = invoker.Options ?? new ApiOptions();
  47. }
  48. }
  49. }