我們有一個文件格式,我們需要分析,看起來像:序列屬性在C#類
v1|000|sammy|endpoint|blah
這是一個有序的固定寬度格式的供應商提供給我們,所以每個那些5個的地圖到類中的特定屬性(實際格式大於30)。
我想通過對屬性應用順序來解析這個問題。我可以做的一件事就是自己創建一些東西 - 編寫一個採用單個數字的Attribute類,並將該屬性應用到每個屬性及其序列索引,並在OrderBy子句中的Reflection中查找它。
在C#中有現成的或更好的方法嗎?例如,這是否已經有一個屬性?有沒有辦法在C#或甚至MSIL中詢問在一個類中聲明瞭哪些訂單屬性?
這取決於。有許多方法,但它們不能保證可以工作,它們依賴於實現細節,這些細節可能會在更新版本的編譯器和更新版本的.NET Framework中發生變化。你想要一個解決方案有多可靠? – hvd 2012-07-09 16:25:35
爲什麼要使用反射?它比編寫一個裝載器類相對較慢且更復雜,該裝載器類具有如何將一系列字符映射到給定屬性的知識。 – 2012-07-09 16:26:41
@ hvd只要我能用單元測試捕捉編譯器驅動的中斷,對於任何我能想象的解決方案來說,這都應該是微不足道的,我會接受簡單性,這對於未來的編譯器更改可能很脆弱。 – 2012-07-09 18:50:39