我正在研究一個WPF應用程序,它需要解析來自C#類的代碼,並確定每個屬性(訪問修飾符,數據類型,屬性名等等)的屬性和不同部分。 )。我目前有一個粗糙的實現,使用一些字符串解析和猜測來確定我需要什麼,但這並不理想。解析和識別C#代碼
因此,舉例來說,如果C#代碼:
public int ID {get;set;}
public string Name {get;set;}
string Address {get;set}
我希望得到的東西,如:
Collection[0] = {Modifier => public, Datatype => int, PropertyName => ID}
Collection[1] = {Modifier => public, Datatype => string, PropertyName => name}
Collection[2] = {Modifier => , Datatype => string, PropertyName => address}
我不知道什麼被搜索。術語:反射,表達樹,T4模板不斷出現在我的研究中,但我不確定我是否在正確的路徑上。
我需要的是對前進道路的一些建議。
現在Roslyn已經發布,你可以使用這些庫。反射僅適用於運行時的代碼,其他兩種聽起來不像您要查找的內容。 – BradleyDotNET
構建代碼並使用反射?但是這似乎過於寬泛的一個問題。 – crashmstr
如果您只需要擔心屬性,可以使用C#的語法創建自己的解析器,而不會有太多困難。 – Abion47