예제 #1
0
 private void LoadTypes(Assembly[] useassemblies, IEnumerable <String> ignoreassemblies)
 {
     //strip duplicates first.
     //Notice: this code is mostly dead! consult MultiTypeManager...
     if (ignoreassemblies == null)
     {
         ignoreassemblies = new String[] { "" }
     }
     ;
     useassemblies = RemoveDuplicates <Assembly>(useassemblies.ToList()).ToArray();
     foreach (var LoadAssembly in useassemblies)
     {
         int      CountInFile = 0;
         Assembly assembly    = LoadAssembly; //prevent access to local closure
         if (assembly.GetName().Name.Equals("script_testscript", StringComparison.OrdinalIgnoreCase))
         {
             Debug.Print("test");
         }
         if ((!assembly.GetName().Name.StartsWith("script_", StringComparison.OrdinalIgnoreCase)) && ignoreassemblies.Any((y) => y.TestRegex(assembly.GetName().Name)))
         {
             mcallback.ShowMessage("Skipping Assembly:" + LoadAssembly.GetName().Name);
         }
         else
         {
             mcallback.ShowMessage("Inspecting Assembly:" + LoadAssembly.GetName().Name);
             try
             {
                 foreach (Type looptype in LoadAssembly.GetTypes())
                 {
                     CountInFile += CheckType(looptype) ? 1 : 0;
                 }
             }
             catch (ReflectionTypeLoadException rtle)
             {
                 mcallback.ShowMessage("ReflectionTypeLoadException occured;" + rtle.StackTrace +
                                       " InnerExceptions:");
                 foreach (Exception loopexception in rtle.LoaderExceptions)
                 {
                     mcallback.ShowMessage("RTLE Loader Exception:" + loopexception.Message + " Source:" +
                                           loopexception.Source + "stack Trace:" + loopexception.StackTrace);
                 }
                 mcallback.ShowMessage("End of RTLE Loader Exceptions");
             }
             catch (Exception ex)
             {
                 mcallback.ShowMessage(ex.Message + " stack:" + ex.StackTrace);
             }
         }
         mcallback.ShowMessage("Found " + CountInFile.ToString() + " " + TypeManage.Name + " Implementations in " + LoadAssembly.GetName());
         foreach (Type looptype in ManagedTypes)
         {
             mcallback.ShowMessage(TypeManage.Name + " Implemented by:" + looptype.Name);
         }
     }
     mcallback.ShowMessage("Assembly enumeration complete. Removing duplicates...");
     _ManagedTypes = RemoveDuplicates(_ManagedTypes, mcallback);
 }
        private void OnLoadAssembly(LoadAssembly param)
        {
            var assembly = IoC.Instance.Resolve <ILoadAssemblyDialog>().LoadAssembly("Load assembly");

            if (assembly == null)
            {
                return;
            }

            ReloadLab(assembly);
        }
 protected override unsafe int OnLoadAssembly(CorDebugAppDomain pAppDomain, CorDebugAssembly pAssembly)
 {
     LoadAssembly?.Invoke(this, pAppDomain, pAssembly);
     return(Continue());
 }
예제 #4
0
 public static void Init()
 {
     _ = new LoadAssembly();
 }
예제 #5
0
 private void loadAssemblyFromFile(LoadAssembly loadAssembly)
 {
     _targetAssembly = Assembly.LoadFile(loadAssembly.Path);
 }
예제 #6
0
        private void OnLoadAssembly(LoadAssembly param)
        {
            var assembly = IoC.Instance.Resolve<ILoadAssemblyDialog>().LoadAssembly("Load assembly");
            if (assembly == null)
            {
                return;
            }

            ReloadLab(assembly);
        }