我很新的Autocad編程,幾個月新的,但我設法用約10 Autocad命令編寫一個應用程序。大多數這些命令顯示一個窗口,其他所有內容都是從該窗口完成的。我嘗試使我的應用程序MVVM..ish。因爲Model Model ViewModels Views和命令之間幾乎有1對1的對應關係,所以我覺得把命令放在MVVM的3個部分中是合適的。首先,我決定將該命令放入ViewModel中,然後我意識到我的命令僅顯示一個窗口,ViewModel不應該處理窗口,因此我將該命令移至View的Codebehind。據我所知,只要與代碼隱藏嚴格相關,就可以在代碼隱藏中使用代碼。然後我讀關於Autodesk提供一些教程CommandClass屬性,我發現這一點:我應該將哪些命令放入Autocad VB.NET項目中?
CommandClassAttribute 這個自定義屬性類是用來標記類型應用程序的命令類。應用程序可以指定一個類型作爲它的命令類。 AutoCAD會在具有此屬性的類型上查找應用程序的命令方法。
這表明我應該有一個類包含我所有的命令。然後我讀了這個,確認了上面的內容:
對於一個實例命令方法,該方法的封閉類型爲每個打開的文檔分別實例化。
所以我的第一種方法把視圖或視圖模型中的命令是完全錯誤的,因爲我會有viewmodel實例沒有做別的比運行命令。然後我在ObjectARX的文檔中讀到:
如果應用程序使用CommandClass屬性,則必須爲包含AutoCAD命令處理程序方法的每種類型聲明該屬性的實例。
這與上面引用的教程直截了當地矛盾,並且還表明,這是一個批准的做法,有多個類來處理命令。
所有的Autocad .NET教程都是一個類和一個命令的項目,所以你不需要做很多選擇。
一些經驗豐富的Autocad .NET開發人員是否可以提供一個最佳實踐,或者至少一個好的或者不錯的實踐來管理一個相當大的項目中的Autocad命令?
[嘗試看看下面的鏈接,它可以幫助你] [1] [1]:http://stackoverflow.com/questions/1338955/autocad-in-vb-net?rq = 1 –
感謝您的回覆,但我沒有「入門」問題。幾個月前,當我真正開始使用Autocad .NET時,我已經訪問過大多數這些鏈接。不幸的是,其中大部分涵蓋了基本的問候世界問題。 – Andrei