G
Geo
Hi All,
I have a "huge" class with many attributes and need to change the value of
some them. The attribute with the value that has to be changed is read from
a xml file, i.e.:
class SalesOrder {
... private variables...
public string Id {
get { return _id; }
set { _id = value; }
}
public int Number {
get { return _number; }
set { _number = value; }
}
... and about 30 properties more...
}
the xml file is something like:
<SalesOrder>
<Modify field="Number" value="45" />
<Modify field="Date" value="06/25/2007" />
<Modify field="CustomerCode" value="MLT2384" />
... and so on...
</SalesOrder>
Finally, I defined an object and read the fields and values:
SalesOrder myOrder = new SalesOrder();
....
XmlReader reader = XmlReader.Create("settings.xml", settings);
....
fieldName = reader.GetAttribute("field");
fieldValue = reader.GetAttribute("value");
....
Now, I'd like to avoid the following code, where I have to check for every
attribute:
if (fieldName == "Number")
myOrder.Number = fieldValue;
else if (fieldName == "CustomerCode")
myOrder.CustomerCode = fieldValue;
Is there any way to do this more efficiently? Any code like:
myOrder.Set(fieldName, fieldValue);
or...
myOrder[fieldName] = fieldValue;
Thanks in Advance !!!
I have a "huge" class with many attributes and need to change the value of
some them. The attribute with the value that has to be changed is read from
a xml file, i.e.:
class SalesOrder {
... private variables...
public string Id {
get { return _id; }
set { _id = value; }
}
public int Number {
get { return _number; }
set { _number = value; }
}
... and about 30 properties more...
}
the xml file is something like:
<SalesOrder>
<Modify field="Number" value="45" />
<Modify field="Date" value="06/25/2007" />
<Modify field="CustomerCode" value="MLT2384" />
... and so on...
</SalesOrder>
Finally, I defined an object and read the fields and values:
SalesOrder myOrder = new SalesOrder();
....
XmlReader reader = XmlReader.Create("settings.xml", settings);
....
fieldName = reader.GetAttribute("field");
fieldValue = reader.GetAttribute("value");
....
Now, I'd like to avoid the following code, where I have to check for every
attribute:
if (fieldName == "Number")
myOrder.Number = fieldValue;
else if (fieldName == "CustomerCode")
myOrder.CustomerCode = fieldValue;
Is there any way to do this more efficiently? Any code like:
myOrder.Set(fieldName, fieldValue);
or...
myOrder[fieldName] = fieldValue;
Thanks in Advance !!!