Exemple #1
0
        /// <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);
        }