none
請問有辦法在開發時候,讓VS動態產生列舉嗎?

    問題

  • 我有個想法不知道現在Visual Studio可不可以做到,就是我前端的工程師,可能會呼叫依些Remoting的物件,或是想要再程式中判斷依些自己定義的例外代碼訊息,但是這些代碼有些是定義在另外一個定義檔,可能是Xml檔,但是我不想定義在Resource檔案裡面,因為依些格式的問題還有編輯的方便性 ,所以今天我開發的時候都要先知道這些檔案有哪些資訊,例如我定義了一個傳輸的類別名稱叫做xxxClass,前端的程式設計師必須確定類別名稱都打對,不然執行期會錯誤,而且前端工程師不能使用xml檔理面未定義的名稱,所以我一直很希望可以自動產生一個列舉出來而不是我先寫好一個列舉(不一定要列舉,類別屬性也是可以),在開發的畫面上可以讓工程師方便使用,也減少出錯機會,而且我的介面和程式的設計也可以更加靈活,請問在目前階段有辦法做到嗎,當然如果需要寫程式碼來做到,我也是可以理解的, 只是希望在開發工具上就可以有這麼好用的功能,雖然我覺得好像有點異想天開喔,或是有捨麼好技巧可以推薦的呢^^....

    2009年5月4日 上午 11:51

解答

  • 異想天開還不至於啦,只是很麻煩就是了。
    要動用到 System.CodeDOM 命名空間的類別,要由你自己用 Code DOM 動態產生程式碼,這樣在設計階段就會出現相關的成員。
    最好的例子就是 ASP.NET 的 Profile Service,在 Web.config 中設定好,在程式碼中就可以使用強型別,即輸入 "Profile." 時就會出現設定好的成員清單。
    小人物一枚。
    • 已標示為解答 shaokuan 2009年5月4日 下午 02:51
    2009年5月4日 下午 12:38

所有回覆

  • 異想天開還不至於啦,只是很麻煩就是了。
    要動用到 System.CodeDOM 命名空間的類別,要由你自己用 Code DOM 動態產生程式碼,這樣在設計階段就會出現相關的成員。
    最好的例子就是 ASP.NET 的 Profile Service,在 Web.config 中設定好,在程式碼中就可以使用強型別,即輸入 "Profile." 時就會出現設定好的成員清單。
    小人物一枚。
    • 已標示為解答 shaokuan 2009年5月4日 下午 02:51
    2009年5月4日 下午 12:38
  • 異想天開還不至於啦,只是很麻煩就是了。
    要動用到 System.CodeDOM 命名空間的類別,要由你自己用 Code DOM 動態產生程式碼,這樣在設計階段就會出現相關的成員。
    最好的例子就是 ASP.NET 的 Profile Service,在 Web.config 中設定好,在程式碼中就可以使用強型別,即輸入 "Profile." 時就會出現設定好的成員清單。
    小人物一枚。

    這裡先感謝小朱的回答,讓我有了一個方向,不過小弟不才阿寫到後來有點疑惑T_T...,在參考了Code DOM 的文件後,我寫了一些程式碼,
    但是我現在的做法離我想像中的還有段差距,先說說我目前的作法
    我有一個專案,專門產生動態程式碼,當然這專案目前很陽春,以後會加入xml檔的讀取,並且改成是用列舉,
    這專案會把產生的程式碼堪入在該專案內(在第一次產生原始檔案後手動去堪入,當然是希望做到不要手動,但是其實如果是已經被包成專案,
    第一次手動也沒差別,因為日後變更檔案名稱的機會很少,但是內容可能會多)
    ,在每次編譯後就會產生新的程式碼,並且有個對外的屬性,傳出動態產生的程式碼的物件,之後就是我的最大問題了
    我這專案產生的組件是要給別的專案使用,我總不希望使用的人每次都要執行我的專案,才能拿到最新的程式碼
    雖然現在我知道怎麼在程式裡面去產生物件和編譯專案成為組件,但是必須在執行期去做,而這時候去產生程式碼和組件卻是沒有用的,因為都已經在執行了
    就無法用它來設計程式了(我的目的就是可以在設計階段自動產生列舉或是屬性),或是我必須要先替前端使用者跑過一次才能拿到最新的程式
    ,那這樣還不如直接寫在程式裡面,所以我很好奇Profile Service,在 Web.config 中設定好,在程式碼中就可以使用強型別,是怎麼實作,
    可以在設計階段就可以動態使用呢......?
    • 已編輯 shaokuan 2009年5月4日 下午 07:06
    2009年5月4日 下午 06:54