XYSLocalLoader.cs 680 B

123456789101112131415161718192021222324252627282930
  1. using System;
  2. using System.Reflection;
  3. namespace prBrowser
  4. {
  5. public class XYSLocalLoader
  6. {
  7. private AppDomain appDomain;
  8. private RemoteLoader remoteLoader;
  9. public XYSLocalLoader()
  10. {
  11. appDomain = AppDomain.CreateDomain("XYSDomain", null, AppDomain.CurrentDomain.BaseDirectory, "bin", shadowCopyFiles: true);
  12. string name = Assembly.GetExecutingAssembly().GetName().FullName;
  13. remoteLoader = (RemoteLoader)appDomain.CreateInstanceAndUnwrap(name, typeof(RemoteLoader).FullName);
  14. }
  15. public string LoadAssembly(string input)
  16. {
  17. return remoteLoader.GetValue(input);
  18. }
  19. public void Unload()
  20. {
  21. AppDomain.Unload(appDomain);
  22. appDomain = null;
  23. }
  24. }
  25. }