0
這是一個令人尷尬的問題,但我覺得我過去幾個小時都試過了。什麼是[編輯器(typeof(FolderNameEditor),typeof(UITypeEditor))]的C++/CLI版本?
我只想補充以下我的財產
#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#項目獲得該項目的參考,我得到一個錯誤說的命名空間缺失。如果我註釋掉編輯器屬性和#using並使用上面的命名空間,那麼一切都很好。
出於某種原因,我無法在MSDN中找到相關材料,如果您可以指出適當的文檔,將不勝感激。
更新: C#項目是.NET 4客戶端配置文件,這就是爲什麼我得到錯誤指示缺少命名空間這是誤導的原因。將目標框架更改爲.NET 4解決了這個問題。
感謝您的回答。實際上,我也已經嘗試了你的,但是我得到一個錯誤,說C#項目中引用CLI項目中缺少名稱空間。感覺像'#using是導致問題的原因。但不知道爲什麼。 –