Example #1
0
        private InterfaceS GetSerializer(string filepath)
        {
            InterfaceS serializer = null;
            bool       flag       = false;

            //ищем нужный сериализатор
            foreach (Type ser in SerializerList)
            {
                serializer = (InterfaceS)Activator.CreateInstance(ser);
                //проверяем, то ли расширение файла
                if ((serializer.FileExtension).IndexOf(Path.GetExtension(filepath)) != -1)
                {
                    flag = true;
                    break;
                }
            }
            if (flag)
            {
                return(serializer);
            }
            else
            {
                return(null);
            }
        }
Example #2
0
        private void btnUploadS_Click(object sender, EventArgs e)
        {
            object loadObject;

            if (openDialog.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }
            string filePath = openDialog.FileName;

            try
            {
                InterfaceS serializer = GetSerializer(filePath);
                if (serializer == null)
                {
                    MessageBox.Show("Десериализация не удалась!");
                    return;
                }
                //десериализуем и кидаем в лист объектов
                loadObject = serializer.Deserialize(filePath);
                ObjectList.Add(loadObject);
                Redraw();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Example #3
0
        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 });
            }
        }
Example #4
0
        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);
        }
Example #5
0
        private void btnUploadS_Click(object sender, EventArgs e)
        {
            object loadObject;

            if (openDialog.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }
            string filePath = openDialog.FileName;

            try
            {
                //проверяем кодировали ли мы что-то
                if (GetSerializer(filePath) == null)
                {
                    if (IsDecoded(ref filePath) == false)//если не вышло раскодировать
                    {
                        MessageBox.Show("Не загружен алгоритм для дешифрования.");
                        return;
                    }
                }

                InterfaceS serializer = GetSerializer(filePath);
                if (serializer == null)
                {
                    MessageBox.Show("Десериализация не удалась!");
                    return;
                }
                //десериализуем и кидаем в лист объектов
                loadObject = serializer.Deserialize(filePath);
                ObjectList.Add(loadObject);
                Redraw();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }