У меня есть тест, который я пишу в MSTest, управляемый C ++, и я пытаюсь протестировать неуправляемый класс. В частности, я пытаюсь использовать класс PrivateObject для вызова частного метода.
Это код, который у меня есть на данный момент:
CUnmanagedType foo;
PrivateObject privateFoo = gcnew PrivateObject( foo );
CString strFromFoo = privateFoo.Invoke( "ARandomPrivateMethod" );
Когда я компилирую, я получаю сообщение об ошибке, что foo не может быть преобразован в System :: Type ^. Я пробовал делать следующее:
PrivateObject privateFoo = gcnew PrivateObject( (gcnew System::Type^(foo)) );
но это не сработает, потому что System :: Type ^ - абстрактный тип. Любые идеи?
Я рассмотрел эти вопросы, но они использовали предопределенные типы, а не определенные пользователем: Как преобразовать неуправляемую двойную строку в управляемую строку? Преобразование между управляемыми и неуправляемыми типами в C ++?