Это может быть выход в левом поле, безумие, но мне просто нужно спросить, прежде чем я продолжу реализацию этого огромного набора классов.
По сути, я пишу парсер двоичных сообщений, который декодирует определенный формат военных сообщений в объект. Проблема в том, что существуют буквально сотни различных типов сообщений, и у них почти нет ничего общего друг с другом. Я планирую реализовать это путем создания сотен различных объектов.
Однако, хотя атрибуты сообщения не имеют ничего общего, метод их декодирования довольно прост и следует шаблону. Поэтому я планирую написать генератор кода для генерации всех объектов и логики декодирования для каждого типа сообщения.
Что было бы действительно мило, если бы существовал способ динамического создания объекта на основе некоторой схемы. Это не обязательно должен быть XML, но с XML довольно легко работать.
Возможно ли это в C #?
Я бы хотел, чтобы интерфейс выглядел примерно так:
var decodedMessage = MessageDecoder.Decode(byteArray);
Когда MessageDecoder определяет, что это за тип сообщения, а затем возвращает соответствующий объект. Вероятно, он вернет интерфейс, который реализует свойство MessageType или что-то в этом роде.
В основном мне интересно, есть ли способ иметь один объект с именем Message, который реализует свойство MessageType. А затем, в зависимости от типа сообщения, объект сообщения преобразуется в сообщение любого типа, поэтому мне не нужно тратить время на создание всех этих типов сообщений.