Вобщем у меня есть два проекта. Один что то вроде редактора - там я загружаю данные из подправляю, а во втором уже непосредственно с ними работаю.
тоесть я планировал так сделать.
Написал первый проект. там все работает отлично . Сохраняет, загружает как надо.
Во втором проекте создал такойже класс как и в первом и попробовал туда загрузить данные из первого проекта.
Выдало ошибку, мол не может найти WindowsFormsApplication1 - это так у меня называется первый проект =((
(незнаю может я че неправильно написал или оно так и задумано, что работает только в пределах одного проекта)
Вобщем вопрос такой. Как мне ДЕсерилизовать эти данные из одного проекта в другой???? Это вообще возможно ???
Переписывать проекты очень нежелательно, хотелось бы сделать именно чтобы одна прога была как редактор а вторая рабочая.
функции серелизации / десерилизации стандартный, без наворотов . вот пример,
public recognize() // LOAD
{
string putj = "OCR_SAVE.s";
if (File.Exists(putj))
{
FileStream fs = new FileStream(putj, FileMode.Open, FileAccess.Read, FileShare.Read);
BinaryFormatter bf = new BinaryFormatter();
list = (letter[])bf.Deserialize(fs);
fs.Close();
}
//================================================================
public static void serialize() //SAVE
{
// sozdajem potok
string putj = dir + "OCR_SAVE.s"; // lu4we bez "DIR" soxranatj srazu v tekuwuju papku
FileStream fs = new FileStream(putj, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
BinaryFormatter bf = new BinaryFormatter();
// sama serializacija
bf.Serialize(fs, list);
fs.Close();
}
Другие языки программирования и технологии
Бинарная Сериализация. С# (Оч нужна помощ)
>> Как мне ДЕсерилизовать эти данные из одного проекта в другой???? Это вообще возможно ???
1) Данные используемые в 2-х ехе-шниках должны быть вынесены в совместно используемый проект типа "Библиотека". Дальше эта библиотека подключена как reference к обоим проектам. И тогда твой класс будет уже находиться не в пространстве имен WindowsFormsApplication1, а где-то в MyLibrary1.
2) Есть и второе решение. Предположим есть WindowsFormsApplication1 и WindowsFormsApplication2, и в первом проекте есть данные которые используются и во втором проекте. Тогда их надо объявить с модификатором public, а во втором проекте поставить ссылку reference на первый проект. И тогда второй проект сможет также десериализовать объекты из WindowsFormsApplication1.
ОДНАКО! Вторая схема имеет ограничения. Все совместно используемые данные придется и далее размещать только в первом проекте. Потому что C# запрещает создание двух сборок которые имеют ссылки друг на друга. Вы должны верно проектировать проект. Если не знаете сколько вам нужно общих библиотек - делайте одну. И складывайте всё там.
К примеру. У вас есть
- система сериализации
- система обмена по сети
- какие-то низкоуровневые файловые примочки
- программа которая имеет GUI и использует ваши наработки
- программа которая сериализует и загружает на FTP
Значит создаем 2 программы, а остальное выкладываем в библиотеку. И стремимся проектировать так, чтобы эта библиотека никак не зависела от того что мы пишем в двух программах.
Чем абстрактнее вы мыслите тем ближе вы к победе.
И наоборот, чем сильнее вы связываете проект тем больше повышаете риски его завалить или переписать.
1) Данные используемые в 2-х ехе-шниках должны быть вынесены в совместно используемый проект типа "Библиотека". Дальше эта библиотека подключена как reference к обоим проектам. И тогда твой класс будет уже находиться не в пространстве имен WindowsFormsApplication1, а где-то в MyLibrary1.
2) Есть и второе решение. Предположим есть WindowsFormsApplication1 и WindowsFormsApplication2, и в первом проекте есть данные которые используются и во втором проекте. Тогда их надо объявить с модификатором public, а во втором проекте поставить ссылку reference на первый проект. И тогда второй проект сможет также десериализовать объекты из WindowsFormsApplication1.
ОДНАКО! Вторая схема имеет ограничения. Все совместно используемые данные придется и далее размещать только в первом проекте. Потому что C# запрещает создание двух сборок которые имеют ссылки друг на друга. Вы должны верно проектировать проект. Если не знаете сколько вам нужно общих библиотек - делайте одну. И складывайте всё там.
К примеру. У вас есть
- система сериализации
- система обмена по сети
- какие-то низкоуровневые файловые примочки
- программа которая имеет GUI и использует ваши наработки
- программа которая сериализует и загружает на FTP
Значит создаем 2 программы, а остальное выкладываем в библиотеку. И стремимся проектировать так, чтобы эта библиотека никак не зависела от того что мы пишем в двух программах.
Чем абстрактнее вы мыслите тем ближе вы к победе.
И наоборот, чем сильнее вы связываете проект тем больше повышаете риски его завалить или переписать.
вынеси сериализуемые классы в отдельную сборку и подключи ее к обоим проектам
Существует ХМЛ-сериализация и десериализации для таких целей
Похожие вопросы
- Работа с бинарными файлами. Народ, SOS. Нужна помощь
- Помогите))) срочно нужна помощ))) подскажите програму для конвертации flv в wmv или avi в wmv)))
- Нужна помощ! как взломать телефон N95 8G?может есть какие ибудь программы?
- нужна помощ. Помогите я первый раз переустановлю windows что делать вставит диск помагите пожалуйста
- по с++ очень нужна помощ понимающего человека
- libBox2d.lib + Visual C++ нужна помощ!
- ПОМОГИТЕ ОЧЕНЬ НУЖНА ПОМОЩ Поменять местами элементы, расположенные симметрично относительно побочной диагонали
- Скачал оч нужную программу, запустил мне выдали тип файла: образ компакт диска. Что это значит и как запустить прогу?
- Для каких целей в программировании нужна сериализация?
- Вопрос по основам машинного кода и бинарного кода. Как это работает в своей основе?