Мне нужен специальный сериализатор (C #)
-
23-09-2019 - |
Вопрос
Я ищу сериализатор, который будет соответствовать моим требованиям, сериализатор может быть в .Net framework, продукт с открытым исходным кодом или платный продукт (при условии, что его можно использовать непосредственно из кода).
итак, мои требования таковы:
обязательный
- Способен обрабатывать циклическую ссылку.
- Автоматически использует либо атрибут, либо наследование в целевом классе, а затем просто записывает данные в файл.
- Положительная фильтрация, означающая, что в целевом классе поля помечены как what Для сериализовать, а не то, что не следует сериализовывать (например, [DataMember] в DataContractSerializer, а не как [XmlIgnore] в XmlSerializer).
- Необходимо использовать конструктор по умолчанию.
- Поддерживает полиморфизм (никаких таких вещей, как "KnownTypes" в DataContractSerializer).
предпочтительнее
- Генерирует файл настолько легким, насколько это возможно.
- Сериализуйте как можно быстрее.
- Работает в закрытых полях.
Я проверил большинство сериализаторов .Net и попытался найти больше в Интернете, но ничего не вышло: все они либо не поддерживают циклическую ссылку, полиморфизм, либо не используют какой-либо конструктор.так что прямо сейчас у меня практически закончились идеи, и я буду рад небольшой передышке.
Спасибо!
Нет правильного решения
Другие советы
Самым близким в BCL является Двоичный форматировщик но это не совместимо.
Я бы посмотрел на Google Буферы протоколов Они доступны для широкого спектра языков C ++, Java, Python и .NET C #.
Проблема с BinaryFormatter заключается в том, что он выполняет отрицательную фильтрацию (помечает файлы не для сериализации) и что он не использует интерпретатор.что касается буферов протокола Google (или ProtoBuff), то у меня была возможность поработать с ним, и он очень сложный, и вряд ли его можно назвать автоматическим