/// <summary> /// /// </summary> /// <param name="path"></param> public void Register(string path) { try { AssemblyName assemblyName = new AssemblyName(); assemblyName.Name = Path.GetFileNameWithoutExtension(path); assemblyName.CodeBase = path; Assembly assembly = Assembly.Load(assemblyName); log.Debug("Loaded " + Path.GetFileName(path)); foreach (Type type in assembly.GetExportedTypes()) { if (type.IsClass && typeof(ICRCer).IsAssignableFrom(type)) { ICRCer crc = (ICRCer)Activator.CreateInstance(type); this._CRCers.Add(crc); //log.Error("Addin {0} was already registered", addin.Name); //else //{ // addinRegistry.Register(addin); log.Debug("Registered addin: {0}", crc.GetType()); //} } } } catch (Exception ex) { // NOTE: Since the gui isn't loaded at this point, // the trace output will only show up in Visual Studio log.Error("Failed to load" + path, ex); throw ex; } }
/// <summary> /// /// </summary> /// <param name="this1"></param> /// <returns></returns> private ListViewItem CreateListViewItem(ICRCer item) { string assemblyInfo = GetAssemblyInfo(item); //string[] items = new string[] { this1.GetType ().Name , "-", assemblyInfo }; string[] items = new string[] { item.GetType().FullName }; ListViewItem lvi = new ListViewItem(items); return(lvi); }
/// <summary> /// /// </summary> /// <param name="this1"></param> /// <returns></returns> private string GetAssemblyInfo(ICRCer item) { return(item.GetType().Assembly.FullName); }