这个问题出现在我试图找出一个更大的问题时,为了简单起见,我忽略了。
我必须在C#中表示某个数据结构。它是一个用于与外部系统通信的协议。因此,它具有一系列具有预定义长度和整数(或其他更复杂数据)的字符串。我们假设:
SYSTEM : four chars
APPLICATION : eight chars
ID : four-byte integer
现在,我首选的方法是使用字符串,所以
class Message
{
string System {get; set; }; // four characters only!
string Application {get; set; }; // eight chars
int Id {get; set; };
}
问题是:我必须确保字符串的长度不超过预定义长度。此外,这个标题实际上有十分之一的字段,这些字段会不时地改变(我们仍在决定消息布局)。
如何描述这种结构的最佳方式?我想,例如,使用带有数据描述的XML并使用反射来创建一个遵循实现的类(因为我需要以编程方式访问它)。
而且,正如我所说,还有更多麻烦。我有其他类型的数据类型限制字符/数字的数量...
答案 0 :(得分:8)
对于初学者:全长问题。这很容易通过不使用自动属性来解决,而是声明自己的字段并以“老式”方式编写属性。然后,您可以在setter中验证您的需求,并抛出异常或丢弃新值,如果它无效。
对于更改结构:如果不可能只是进入并更改类,您可以编写一个使用Dictionary(好吧,可能是每个要存储的数据类型一个)的解决方案来将名称与值相关联。添加某种文件(可能是XML),描述允许的字段,类型和验证要求。
然而,如果它只是因为你尚未确定最终结构而改变,我可能更愿意只更改类 - 如果在部署应用程序时不需要那种动态结构,它看起来像浪费时间,因为你可能最终花费更多的时间来编写动态的东西,而不是改变课程。