我们有一个文件格式,我们需要分析,看起来像:序列属性在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