Constants.cs 1.1 KB

123456789101112131415161718192021222324252627282930
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Security.Cryptography;
  5. using System.Text;
  6. namespace com.bbbirder.injection
  7. {
  8. public static class Constants
  9. {
  10. public const string INJECTED_MARK_NAMESPACE = "com.bbbirder";
  11. public const string INJECTED_MARK_NAME = "InjectedMarkAttribute";
  12. public static string GetInjectedFieldName(string methodName, string methodSignature)
  13. => strBuilder.Clear().Append("_injection_field+").Append(methodName).Append(MD5Hash(methodSignature)).ToString();
  14. public static string GetOriginMethodName(string methodName, string methodSignature)
  15. => strBuilder.Clear().Append("_injection_origin+").Append(methodName).Append(MD5Hash(methodSignature)).ToString();
  16. static string MD5Hash(string rawContent)
  17. {
  18. var md5 = MD5.Create();
  19. var buffer = md5.ComputeHash(Encoding.UTF8.GetBytes(rawContent));
  20. return string.Concat(buffer.Select(b => b.ToString("X")));
  21. }
  22. static StringBuilder strBuilder = new();
  23. }
  24. }