2015-01-10 65 views
0

我正在爲我正在開發的項目製作一個MSDN樣式文檔站點。我想知道是否有辦法遍歷所有類,包括它們的公共屬性/方法,並獲取其網頁生成的摘要和其他屬性。下面詳細說明:c#遍歷文檔生成的所有類屬性和方法

爲I類需要的名稱空間+摘要+繼承的類+類定義語法+公共構造+公共屬性+公有方法

實施例:

namespace foo 
{ 
    /// <summary> 
    /// ss 
    /// </summary> 
    public class bar : ClassA, InterfaceA 
    { 
     public bar(int a, int b) 
     { 
     } 

     public int Property1 { get;set; } 

     public int Method1(int a) 
     { 
      return 1; 
     } 
    } 
} 

命名空間= FOO
摘要= ss
繼承的類= ClassA
類定義語法= public class bar : ClassA, InterfaceA
public const ructors =欄(INT,INT)
公共屬性= Property1
公共方法方法1 =(int)的

,併爲所有的方法,屬性我需要的類型,如果它是隻讀等。

長話短說,基本上我想要儘可能地生成MSDN中的信息。任何幫助或想法表示讚賞。

+0

反射?也許羅斯林。 – MarcinJuraszek

+0

@MarcinJuraszek反射無法得到總結.... – Steve

+0

做這裏提到的任何解決方案有幫助嗎? http://stackoverflow.com/questions/641364/c-sharp-documentation-generator – adv12

回答

0

我已經建立了一個功能很久以前,通過類PropertyInfo遍歷我的模型類,它發現了屬性的屬性並提供對屬性元數據的訪問。

然後我沒有手動輸入所有領域

發現下面的代碼

public static string GenerateInsertQuery(IModel model) 
{ 
    Type myType = model.GetType(); 
    string query = "INSERT INTO [" + myType.Name + "] ("; 
    IList<PropertyInfo> props = new List<PropertyInfo>(myType.GetProperties()); 
    string[] nonDBFields = { "isValid", "isChanged", "CREATEDON", "CHANGEDON", "CHANGEDBY" }; 

    foreach (PropertyInfo prop in props) 
    { 
     if (prop.Name == nonDBFields[0] || prop.Name == nonDBFields[1] || prop.Name == nonDBFields[3] || prop.Name == nonDBFields[4]) 
     { 
      continue; 
     } 
     else 
      query += "[" + prop.Name + "] , "; 
    } 

    query.Remove(query.LastIndexOf(","), 1); 
    query += ") VALUES ("; 

    foreach (PropertyInfo prop in props) 
    { 
     if (prop.Name == nonDBFields[0] || prop.Name == nonDBFields[1] || prop.Name == nonDBFields[3] || prop.Name == nonDBFields[4]) 
     { 
      continue; 
     } 
     else 
     { 
      if (prop.Name == nonDBFields[2]) 
      { 
       query += "GETDATE(),"; 
       continue; 
      } 
      else 
      { 
       query += " @" + prop.Name + ", "; 
       continue; 
      } 
     } 
    } 

    query.Remove(query.LastIndexOf(','), 1); 
    query += ")"; 

    return query; 
} 
0

有這個開源解決方案的產生頭痛爲我所需要的SQL插入查詢。 http://jimblackler.net/blog/?p=49

注意:它解決了您的解決方案的XML文檔輸出。

來自博客:

在Visual Studio中建立自己的項目,包括XML註釋。

(注意,XML文檔輸出默認情況下,在 Visual Studio中未啓用。轉到您的項目屬性,選擇Build,並 下的輸出部分檢查說XML文檔文件的對話框。它 是非常重要的您不改變XML文件的位置 或者此方法在運行時將無法找到它。)