我正在使用第三方XSD和它的糟糕。但是,所有枚举都没有正确反序列化,它们默认为第一个值。
以下是其中一个枚举的示例
public enum LoanIdentifierBase
{
NotSet,
AgencyCase,
InvestorCommitment,
InvestorContract,
InvestorLoan,
InvestorWorkoutCase,
这是使用此枚举的类
public class LoanIdentifierEnum : BaseClass
{
[XmlAttribute("SensitiveIndicator")]
public bool SensitiveIndicator { set; get; }
[XmlIgnore]
public bool SensitiveIndicatorSpecified { set; get; }
[XmlAttribute(Form = XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/1999/xlink", DataType = "NCName")]
public string label { set; get; }
[XmlAnyAttribute]
public XmlAttribute[] AnyAttr { set; get; }
public LoanIdentifierBase Values { set; get; }
}
我尝试了几种标签和排列,但无论我做什么,所有值都会以未设置的方式返回。
以下是与此
相关联的导入文件答案 0 :(得分:0)
这是一个愚蠢的答案,但它有效
public LoanIdentifierBase Values { set; get; }
变为
[XmlText]
public string RealValue { set; get; }
public LoanIdentifierBase Value => (LoanIdentifierBase) Enum.Parse(typeof(LoanIdentifierBase), RealValue);
这样可以将值反序列化为正确的枚举值