BizTalk — как программно вызвать карту проверки Visual Studio и сохранить XSLT

В Visual Studio я могу щелкнуть правой кнопкой мыши карту (файл .btm) и вручную выбрать «Проверить карту» для одной карты. Затем я могу щелкнуть и увидеть XSLT.

Есть ли способ вызвать эту функцию? Я хотел бы превратить около 150 карт в XSLT для анализа и сравнения, насколько они похожи/различны.


person NealWalters    schedule 05.07.2018    source источник
comment
Это должно быть возможно, потому что в скомпилированных библиотеках DLL они находятся в версии XSLT, а не в формате .btm, поэтому вы должны иметь возможность использовать отражение для извлечения строки xslt. Я делал это вручную в тех случаях, когда исходный код был утерян в соответствии с stackoverflow.com/questions/20877720/   -  person Dijkgraaf    schedule 06.07.2018


Ответы (1)


Вы можете динамически загружать и вызывать карты из оркестровки следующим образом:

// dynamicMapType is declared 'System.Type'
dynamicMapType = Helper.GetMapType(MessageTypeName);
// Call the transform given by the object type, pass in a message
transform(msgOut) = dynamicMapType(msgIn);

Вот пример получения типа объекта карты. Я поместил свой в вспомогательную сборку С#.

public static System.Type GetMapType(string MessageType)
{
    System.Type typ = null;
    switch (MessageType.ToUpper())
    {
        case "ONE":
            typ = System.Type.GetType("AssemblyQualifiedName_from_gacutil");
            break;
        default:
            throw new SystemException("Could not determine map transform type '" + MessageType + "'");
    }
    if (typ == null)
        throw new SystemException("Could not load map transform type '" + MessageType + "'");
    return typ;
}
person Jay    schedule 16.07.2018
comment
Спасибо, сейчас я работаю над другими вещами; когда я вернусь к этому, постараюсь отметить как ответ. - person NealWalters; 17.07.2018
comment
Привет, смотрел еще раз. Где в вашем ответе говорится о получении XSLT карты? Я пытаюсь сделать это из С# или Powershell, а не из оркестровки. Но мне было бы интересно запустить карту и из C#. - person NealWalters; 08.12.2018
comment
Извините, я неправильно понял ваш вопрос. Я видел, как программно вызвать карту - person Jay; 08.12.2018