BaseHeader.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace ServerLib
  7. {
  8. public class BaseHeader
  9. {
  10. public string Body { get; set; }
  11. public Encoding Encoding { get; set; }
  12. public string Content_Type { get; set; }
  13. public string Content_Length { get; set; }
  14. public string Content_Encoding { get; set; }
  15. public string ContentLanguage { get; set; }
  16. public Dictionary<string, string> Headers { get; set; }
  17. /// <summary>
  18. /// 不支持枚举类型约束,所以采取下列方案:)
  19. /// </summary>
  20. protected string GetHeaderByKey(Enum header)
  21. {
  22. var fieldName = header.GetDescription();
  23. if (fieldName == null) return null;
  24. var hasKey = Headers.ContainsKey(fieldName);
  25. if (!hasKey) return null;
  26. return Headers[fieldName];
  27. }
  28. protected string GetHeaderByKey(string fieldName)
  29. {
  30. if (string.IsNullOrEmpty(fieldName)) return null;
  31. var hasKey = Headers.ContainsKey(fieldName);
  32. if (!hasKey) return null;
  33. return Headers[fieldName];
  34. }
  35. /// <summary>
  36. /// 不支持枚举类型约束,所以采取下列方案:)
  37. /// </summary>
  38. protected void SetHeaderByKey(Enum header, string value)
  39. {
  40. var fieldName = header.GetDescription();
  41. if (fieldName == null) return;
  42. var hasKey = Headers.ContainsKey(fieldName);
  43. if (!hasKey) Headers.Add(fieldName, value);
  44. Headers[fieldName] = value;
  45. }
  46. protected void SetHeaderByKey(string fieldName, string value)
  47. {
  48. if (string.IsNullOrEmpty(fieldName)) return;
  49. var hasKey = Headers.ContainsKey(fieldName);
  50. if (!hasKey) Headers.Add(fieldName, value);
  51. Headers[fieldName] = value;
  52. }
  53. }
  54. }