2015-10-20 25 views
0

我想通過VisualStudio的EnvDTE COM分析C#項目源代碼。期望的任務是:EnvDTE解析函數代碼[更長]

  1. 在項目結構中找到具有給定名稱的CodeClass。 [完成]
  2. 查找其所有公開{get; set;}屬性。 [完成]
  3. 找到其公共構造函數(具有與找到的屬性的數量匹配的參數數量的構造函數)。 [完成]
  4. 嘗試將構造函數參數與公共屬性相匹配。這一步依賴於一些假設:

    • 應該是在類以下目前的形式構造:

      public ClassName(typeC paramC, TypeA paramA, typeB paramB...) 
      { 
          PropA = paramA; 
          PropC = paramC; 
          PropB = paramB; 
          ... 
      } 
      
    • 應該是唯一直接參數對財產的分配狀PropA = paramA,沒有什麼像propA = paramB + paramC被允許。

在理想的世界裏,我願承認其參數被分配到哪個屬性不添加到源類像任何額外的假設或元數據:

  • 沒有爲參數的任何規則訂購。
  • 分配順序有任何規則。
  • 參數/屬性命名約定有任何規則。
  • 對於與屬性關聯的其他屬性有任何規則。

的問題是:我們可以通過EnvDTE分析所描述的構造體?

我已經有代表該標識構造函數也作爲他的CodeParameter參數集合CodeFunction對象,但我不能夠到達的代碼(不知道它甚至有可能,但枚舉成員vsCMElement.vsCMElementAssignmentStmt帶給我希望,它可以是)......

回答