Пример #1
0
 static void Main()
 {
     //включаем визуальные стили для прилжения, поскольку оно является оконным
     Application.EnableVisualStyles();
     /*создаём необходимые домены приложений с дружественными именами и 
      * сохраняем ссылки на них в соответствующие переменные*/
     Drawer = AppDomain.CreateDomain("Drawer");
     TextWindow = AppDomain.CreateDomain("TextWindow");
     /*загружаем сборки с оконными приложениями в соответствующие домены приложений*/
     DrawerAsm = Drawer.Load(AssemblyName.GetAssemblyName("TextDrawer.exe"));
     TextWindowAsm = Drawer.Load(AssemblyName.GetAssemblyName("TextWindow.exe"));
     /*создаём объекты окон на сонове оконных типов данных из загруженных сборок*/
     DrawerWindow = Activator.CreateInstance(DrawerAsm.GetType("TextDrawer.Form1")) as Form;
     TextWindowWnd = Activator.CreateInstance(
         TextWindowAsm.GetType("TextWindow.Form1"), 
         new object[]
             {
                 DrawerAsm.GetModule("TextDrawer.exe"),
                 DrawerWindow
             }) as Form;
     /*запускаем потоки*/
     (new Thread(new ThreadStart(RunVisualizer))).Start();
     (new Thread(new ThreadStart(RunDrawer))).Start();
     /*добавляем обработчик события DomainUnload*/
     Drawer.DomainUnload += new EventHandler(Drawer_DomainUnload);
 }
Пример #2
0
        public void ReadScripts(Assembly assembly, Dictionary<string, Lazy<IScript>> scripts)
        {
            Module module = assembly.GetModule(Compiler.ModuleName);
            if(module == null)
                return;

            Compiler.ReadScripts(module, scripts);
        }
Пример #3
0
		/// <summary>
		/// Gets a CLR module where the script is stored.
		/// </summary>
		public static Module GetModule(Assembly/*!*/ assembly)
		{
			return assembly.GetModule(moduleName);
		}