2009-04-21 3 views
1

Есть ли инструмент, который возьмет серию заголовков C++ и сгенерирует XSD и класс, который будет сериализовать C++ для XML?C++ Object Graph to C#

Или действительно мы ищем самый простой способ перенести данные с C++ на C#? У нас есть библиотека на C++, для которой мы хотели бы написать графический интерфейс для C#. Использование управляемых классов-оболочек кажется, что нам придется создавать обертки для каждого класса. Целью является автоматизация.

ответ

1

Возможное решение ... но все же требует некоторой работы !:

Если вы используете Microsoft Visual Studio можно использовать CodeDom (http://msdn.microsoft.com/en-us/library/y2k85ax6.aspx), чтобы разобрать ваш C++ код. Затем вы можете использовать шаблоны T4 для выписывания кода C# или функции C++, которые будут сериализовать ваши объекты C++.

Если у вас есть версия Visual Studio 2008, вы получаете T4 с ней. В 2005 году добавлена ​​дополнительная загрузка. (http://msdn.microsoft.com/en-us/library/bb126445.aspx)

1

Рассматривали ли вы пишете небольшой скрипт для преобразования заголовков C++ в protocol buffer.proto файл.

Это преобразование должно быть относительно простым. Тогда существуют реализаций буфера протокола C++ и C#, и вы должны иметь возможность генерировать большую часть своего C# и иметь полуразмерный способ синхронизировать их при изменении.

Это сказало, что я все равно скажу, что, если возможно, сделайте вашу библиотеку скомпилированной с/clr, чтобы сделать ее тривиально пригодной для использования с C#. Это может быть невозможно, если другие пользователи библиотеки не могут зависеть от времени выполнения CLR.