DomainTool.cs 1.3 KB

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