Сообщения TIBCO для POCO и наоборот

Недавно я занимался разработкой TIBCO, и мне интересно, как лучше конвертировать сообщения TIBCO в / из?

Это то, чем я сейчас занимаюсь, но я знаю, что должен быть лучший способ сделать это. Но мой мозг в настоящий момент зажжен, и поиск по Bing/Google или SO не возвращает ничего полезного.

    public static Envelope ParseEnvelope(Message msg)
    {
        try
        {
            var field = msg.GetField("Envelope");
            if(field == null) throw new ArgumentException("msg does not contain Envelope field", "msg");

            var envMsg = field.Value as Message;
            if(envMsg == null) throw new ArgumentException("msg.Envelope field is null or not a Message", "msg");

            var envTypeField = envMsg.GetField("EnvelopeEventId");
            if (envTypeField == null) throw new ArgumentException("msg.Envelope does contain EnvelopeEventId field");

            var envType = envTypeField.Value as String;
            if (envType == null) throw new ArgumentException("msg.Envelope.EnvelopeEventId field is null or not a String", "msg");

            var env = new Envelope(envType);

        }

Любая помощь или указатели приветствуются!

Сейчас я думаю о создании своего собственного типа AutoMapper для преобразования сообщений в / из, которые бы смотрели на конкретное "Поле" в корне сообщения TIBCO, чтобы получить класс, в который оно должно преобразовываться, и затем использовали бы отражение (впервые если не в кеше) для дерева свойств этого класса рекурсивно (если какое-либо свойство не является типом значения)

0 ответов

Другие вопросы по тегам