我收到编译器错误:无法将类型为“System.Xml.Linq.XElement”的表达式转换为类型 AutomationStatusType 我做错了什么?
xml:
<Status>
<Version>33</Version>
<Status>Running</Status>
</Status>
查询:
var query = (from status in doc.Descendants("Status")
select new AutomationStatus
{
Version = (string)status.Element("Version"),
Status = (AutomationStatusType)status.Element("Status"),
});
类:
public class AutomationStatus
{
[XmlAttribute]
public string Version { get; set; }
[XmlElement]
public AutomationStatusType Status { get; set; }
}
[DataContract]
public enum AutomationStatusType
{
[EnumMember]
Idle,
[EnumMember]
Running
}
编辑: 在阅读了您的评论后,我确实添加了以下外壳:
Status = Enum.Parse(typeof(AutomationStatusType), (string)status.Element("Status")),
现在我遇到编译错误: 无法将类型“System.Xml.Linq.XElement”转换为“Verint.AP2.Manager.AutomationStatusType”
但是,如果我创建一个匿名类,我就能够消除错误:
var query = (from status in doc.Descendants("AutomationStatus")
select new /*AutomationStatus*/
{
Version = (string)status.Element("Version"),
Status = Enum.Parse(typeof(AutomationStatusType), (string)status.Element("Status")),
TimeStamp = (DateTime) status.Element("TimeStamp")
});
可能是什么问题,我如何创建类(非匿名?) 谢谢!
最佳答案
当您解析状态而不是现在的行时,请使用以下代码段。
Status = Enum.Parse(typeof(AutomationStatusType), status.Element("Status")
关于c# - 无法将类型为“System.Xml.Linq.XElement”的表达式转换为类型 XXX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9497137/