如果属性不存在,如何将属性的值分配给类? 如果属性存在,Convert.ToInt32工作正常但是当它不存在时我被告知最好使用Cast,但是转换不适用于整数:
string xml = GetXmlContent();
TextReader tr = new StringReader(xml);
XDocument doc = XDocument.Load(tr);
var server = doc.Descendants("server")
.Select(x => new RunningValueServer
{
created = DateTime.Now,
productName = (string)x.Attribute("productName"),
//nlbHostPriority = (int)x.Attribute("nlbHostPriority"), //this wont work
nlbHostPriority = Convert.ToInt32(x.Attribute("nlbHostPriority").Value),
...
有什么想法吗? 谢谢!
答案 0 :(得分:1)
如果该属性不存在,您想要哪个值?如果这是一个选项,您可以转为int?
而不是int
。{/ 1}}。
如果nlbHostPriority = (int?)x.Attribute("nlbHostPriority")
不是选项,请使用int?
。当然,如果属性不存在,您可以将nlbHostPriority = (int?)x.Attribute("nlbHostPriority")??0
替换为要分配的任何整数值。