我不确定如何描述我正在寻找的东西,所以希望情况会有所清楚。
我有一个具有许多属性的对象(比如object.one,object.two,object.three)。这些属性中大约有30个,它们都包含一个字符串(“通过”或“失败”)。
现在,现有代码会检查属性是否具有“Pass”或“Fail”值,然后运行一些打印出来的代码。也就是说,相同的代码片段重复30次,每个属性都有一个。
代码看起来像这样
if(object.one = ...)
...
结束如果
如果(object.two = ...)
...
结束如果
如果(object.three = ...)
...
如果
我想用一个循环来清理这个混乱(每个块很大),但我不知道该怎么做。我想也许有一种方法可以构建像“object.one”这样的字符串并运行一些函数来告诉编译器这实际上是对象的属性?
这样我就可以创建一个包含对象名称的数组,比如我的array = {“object.one”,“object.two”,“object.three”},然后在伪代码中执行类似的操作
对于我的数组中的每个字符串
如果(some_function(string)= ...)
...
结束如果
基本上,它会占用大量重复代码块并将其减少到一个块。我正在寻找这样的功能吗? 这是在VB.net。
答案 0 :(得分:0)
您似乎在描述serialization,这是将对象状态转换为可以存储/传输和反序列化的格式的行为,这是相反的。
.NET框架有几个可以处理文本的不同序列化程序 - XML或JSON - 用于XML的DataContractSerializer
和用于JSON的DataContractJsonSerizlizer
。
答案 1 :(得分:0)
我不确定我是否理解但您可以使用反射并获取对象属性运行时?
使用反射,您可以访问公共对象属性,使用PropertyFiled.GetValue()来获取一个,两个等,并构建一个数组(我假设一个,两个等是对象属性,是吗?)
您可以在此处找到更多信息:http://msdn.microsoft.com/en-us/library/system.reflection.aspx
抱歉我的英语不好,我是意大利人。