C ++ Cli — Что такое C ++ / CLI версия [Editor (typeof (FolderNameEditor), typeof (UITypeEditor))]?

Это неловкий вопрос, но я чувствую, что перепробовал все за последние пару часов.

Я просто хочу добавить атрибут следования в мою собственность

 #using <System.Drawing.dll>
#using <System.Design.dll>
...
using namespace System::Drawing::Design;
using namespace System::Configuration;
using namespace System::ComponentModel;
using namespace System::Windows::Forms::Design;
...

[Editor(typeof(FolderNameEditor), typeof(UITypeEditor))]
property System::String^           DefaultWorkingDirectory;

Во-первых, я попытался, как есть, и компилятор говорит «незаконное использование типа (FolderNameEditor).

Теперь я попробовал это

    [Editor(Type::GetType("System.Windows.Form.Design.FolderNameEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"),
Type::GetType("System.Drawing.Design.UITypeEditor, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"))]

Но это говорит о незаконном атрибуте аргумента.

Если я делаю следующее, проект C ++ / CLI компилируется

    [Editor("System.Windows.Form.Design.FolderNameEditor", "System.Drawing.Design.UITypeEditor")]

Но всякий раз, когда я пытался получить ссылку на проект из проекта на C #, я получал сообщение о том, что пространство имен отсутствует. Если я закомментирую атрибут editor и #using и использую пространство имен выше, все будет хорошо.

По какой-то причине я не могу найти соответствующие материалы в MSDN, если вы можете указать правильный документ, который был бы оценен.

ОБНОВИТЬ: Проект C # представлял собой .NET 4 Client Profile, и именно поэтому я получил сообщение об ошибке, указывающее на отсутствующее пространство имен, которое вводит в заблуждение. Изменение целевой платформы на .NET 4 решило проблему.

0

Решение

C ++ / CLI эквивалентно typeof() является ::typeid, Попробуй это:

[Editor(FolderNameEditor::typeid, UITypeEditor::typeid)]
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]