Самый простой способ конвертировать CArchive для использования базы данных SQL для сериализации? - PullRequest
0 голосов
/ 10 ноября 2008

У меня есть приложение, которое использует CArchive для сериализации структуры объекта в файл. Мне интересно, если можно заменить использование CArchive с каким-то пользовательским классом для записи в базу данных так же, как вещи сериализуются. Прежде чем приступить к выяснению, выполнимо ли это, я хотел бы знать, поступили ли другие люди так же, каков наилучший подход к этой проблеме? Я хотел бы иметь возможность создать замену для использования CArchive, чтобы существующая структура объекта просто считывала / записывала в / из базы данных, а не в сериализованный файл. Это так же просто, как перезаписать метод Serialize для каждого класса?

1 Ответ

0 голосов
/ 11 ноября 2008

Краткий ответ: забудь.

Более длинный ответ:

CArchive не имеет ни одного виртуального члена. Даже если деструктор не является виртуальным, это означает, что вы не должны наследовать от этого класса (программисты на C # говорят загерметизировано ).

Есть только одна возможность, которую я могу придумать, чтобы настроить работу CArchive (и без переписывания всего кода сериализации в CDocument): создать свой объект CArchive, передав ему указатель на производный класс CFile, который будет обрабатывать соединение данных для вас.

С этого момента то, как вы управляете своей базой данных, просто переопределяя CFile Read () и Write (), выходит за рамки моего воображения: - (

...