HttpContext.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using CZFW.Core;
  2. using Microsoft.AspNetCore.Http;
  3. using Microsoft.Extensions.Logging;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.IO;
  7. using System.Runtime.Serialization.Formatters.Binary;
  8. using System.Text;
  9. namespace CZFW.Framework.Model
  10. {
  11. public static class CZHttpContext
  12. {
  13. public static IServiceProvider ServiceProvider;
  14. public static Microsoft.AspNetCore.Http.HttpContext Current
  15. {
  16. get
  17. {
  18. object factory = ServiceProvider.GetService(typeof(Microsoft.AspNetCore.Http.IHttpContextAccessor));
  19. HttpContext context = ((Microsoft.AspNetCore.Http.HttpContextAccessor)factory).HttpContext;
  20. return context;
  21. }
  22. }
  23. public static TType GetObject<TType>(this ISession Session, string key)
  24. {
  25. var jsonStr = Session.GetString(key);
  26. var obj = Json.Deserialize<TType>(jsonStr);
  27. return obj;
  28. }
  29. public static void SetObject<TType>(this ISession Session, string key, TType obj)
  30. {
  31. var jsonString = obj.ToJson();
  32. Session.SetString(key, jsonString);
  33. }
  34. private static ILogger<string> logger;
  35. public static ILogger<string> Logger
  36. {
  37. get
  38. {
  39. if (logger == null)
  40. {
  41. logger = ServiceProvider.GetService(typeof(ILogger<string>)) as ILogger<string>;
  42. }
  43. return logger;
  44. }
  45. }
  46. public static void SetLogger(ILogger<string> log) {
  47. logger = log;
  48. }
  49. }
  50. }