簡體   English   中英

在Visual Studio .Net中創建自定義屬性編輯器/生成器

[英]Creating a custom properties editor/generator in Visual Studio .Net

我有一個應用程序,允許開發人員創建自己的派生子類並為其添加預定的屬性。

例如 :

class MyDocContainer : GenericDocumentContainer {

Document docA = new Document("Secret Report on Brocoli Wars"); 
Document docB = new Document("Who's afraid of Donald Duck");
Document docC = new Document("Out Of Money Experience");

 //rest of code goes here

}

我想要一個可視化編輯器,該編輯器允許將文檔和其他預定義類型編輯/添加到部分類中(就像設置設計器一樣)

這確實有助於對派生類進行綜合查看並使其易於維護。

理想情況下,我還想為特殊位置的每個屬性生成很少的相關代碼行(例如構造函數或專用的init方法)

有任何想法嗎 ?

從您試圖實現的目的(並假設您希望它盡可能自然),我建議您使用Visual Studio加載項或VSX包,訪問DTE及其代碼模型。

這是您可能想要做的(如果您選擇加載項路徑):

  1. 創建加載項(在“其他項目類型”菜單中,有一個“加載項”選項)。
  2. 創建Windows窗體或Windows使用控件或WPF控件以適應將要使用的UI。
  3. 顯示控件或表單,以便開發人員可以完成他/她的工作。
  4. 使用FileCode模型方法將代碼工件添加到解決方案中。

您需要了解的一些事情:

  1. 您將需要DTE / DTE2實例,而AddIn已經擁有它們,但是您可能需要將它們傳遞給UI,以防您從那里更改代碼。
  2. DTE具有解決方案屬性,該屬性表示當前加載的解決方案。 您可能要迭代其項目/項目。
  3. 每個項目都有項目項(實際的代碼文件)。
  4. 一些ProjectItem具有FileCodeModel。

有了要添加代碼工件的項目的FileCodeModel,添加CodeClasses,CodeFunctins和其他內容就很容易了。

請注意:擴展Visual Studio可能很麻煩(由於可擴展性框架的COM性質),因此請確保首先創建一個好的概念證明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM