/// <summary> /// Overridden to load hash providers! /// </summary> /// <param name="e"></param> protected override void OnInitialized(EventArgs e) { base.OnInitialized(e); RuntimeCommon.MainLogger = this.logBox; string pluginDir = Environment.CurrentDirectory + providerRelPath; string libPath = System.IO.Path.Combine(pluginDir, "HashererLib.dll"); if (File.Exists(libPath)) { ComponentBase.Log(LoggingType.Warning, this, "Deleting HashererLib.dll from Provider directory, the file should not be present in that directory as it would prevent loading Providers"); File.Delete(libPath); } AssemblyLoader loader = new AssemblyLoader(); List <IProviderInstantiator> insts = new List <IProviderInstantiator>(loader.LoadDirectory <IProviderInstantiator>(Environment.CurrentDirectory + providerRelPath)); insts.Sort(new Comparison <IProviderInstantiator>((i1, i2) => string.Compare(i1.DisplayName, i2.DisplayName))); foreach (IProviderInstantiator providerInstantiator in insts) { this.providers.Add(new HashProviderProxy(providerInstantiator.Instantiate()) { IsEnabled = providerInstantiator.DefaultEnabled }); } this.infoBox.ItemsSource = this.InfoCollection; this.hashList.ItemsSource = this.Providers; List <Encoding> l = new List <Encoding>(Encoding.GetEncodings().Select <EncodingInfo, Encoding>(ei => Encoding.GetEncoding(ei.CodePage))); l.Sort(new Comparison <Encoding>((enc, e2) => string.Compare(enc.EncodingName, e2.EncodingName))); this.encodings = new ObservableCollection <Encoding>(l); this.encodingBox.ItemsSource = this.Encodings; this.encodingBox.SelectedIndex = this.encodings.IndexOf(this.encodings.FirstOrDefault(enc => enc.EncodingName == "Unicode")); this.LoadFile(Process.GetCurrentProcess().MainModule.FileName); }