private void btnSaveS_Click(object sender, EventArgs e) { if (lvService.SelectedItems.Count == 0) { return; } //создаем объект и помещаем туда выбранный из списка object selectedObj = new object(); selectedObj = ObjectList[lvService.SelectedIndices[0]]; InterfaceS serializer = (InterfaceS)Activator.CreateInstance(SerializerList[cbSerializer.SelectedIndex]); saveDialog.Filter = serializer.FileExtension; if (saveDialog.ShowDialog() == DialogResult.Cancel) { return; } string filePath = saveDialog.FileName; serializer.Serialize(selectedObj, filePath); //время для цирка с кодировкой DialogResult choice = MessageBox.Show("Хотите закодировать файл?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (choice == DialogResult.Yes) { if (cbCoding.SelectedIndex == -1) { MessageBox.Show("Кодировка не выбрана, кодирование не было проведено."); return; } //подгрузка плагина Assembly assembly = Assembly.LoadFile(PluginList[cbCoding.SelectedIndex]); //ищем в библиотеке конкретный класс и вызываем метод Encode string str = Path.GetFileNameWithoutExtension(PluginList[cbCoding.SelectedIndex]); object obj = assembly.CreateInstance(str + ".CodingAlgorithms"); Type type = obj.GetType(); type.GetMethod("Encode").Invoke(obj, new object[] { filePath }); } }
private void btnSaveS_Click(object sender, EventArgs e) { if (lvService.SelectedItems.Count == 0) { return; } //создаем объект и помещаем туда выбранный из списка object selectedObj = new object(); selectedObj = ObjectList[lvService.SelectedIndices[0]]; InterfaceS serializer = (InterfaceS)Activator.CreateInstance(SerializerList[cbSerializer.SelectedIndex]); saveDialog.Filter = serializer.FileExtension; if (saveDialog.ShowDialog() == DialogResult.Cancel) { return; } string filePath = saveDialog.FileName; serializer.Serialize(selectedObj, filePath); }