DomainTool.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. //############################################################
  2. // https://github.com/yuzhengyang
  3. // author:yuzhengyang
  4. //############################################################
  5. using System;
  6. using Y.Utils.IOUtils.LogUtils;
  7. namespace Y.Utils.ReflectionUtils.ReflectionCoreUtils
  8. {
  9. public static class DomainTool
  10. {
  11. public static AppDomain CreateDomain(string friendlyName, string appBase)
  12. {
  13. try
  14. {
  15. AppDomainSetup setup = new AppDomainSetup();
  16. setup.ApplicationName = friendlyName;
  17. setup.ApplicationBase = appBase;
  18. //setup.PrivateBinPath = appBasePath + @"\Private";
  19. //setup.CachePath = setup.ApplicationBase;
  20. //setup.ShadowCopyFiles = "true";
  21. //setup.ShadowCopyDirectories = setup.ApplicationBase;
  22. AppDomain appDomain = AppDomain.CreateDomain(friendlyName, null, setup);
  23. return appDomain;
  24. }
  25. catch (Exception e)
  26. { }
  27. return null;
  28. }
  29. public static T CreateInstance<T>(AppDomain domain)
  30. {
  31. T obj = (T)domain.CreateInstanceAndUnwrap(typeof(T).Assembly.FullName, typeof(T).FullName);
  32. return obj;
  33. }
  34. }
  35. }