使用下面的代码会XmlSerializer
抛出一个期望,因为Foo
它包含两个与 enum 同名的属性EnumSameName
。
框架 .NET 4.0
public class Bar1
{
public enum EnumSameName
{
a
}
public EnumSameName MyBar1Enum { get; set; }
}
public class Bar2
{
public enum EnumSameName
{
b
}
public EnumSameName MyBar2Enum { get; set; }
}
public class Foo
{
public Foo()
{
MyEnum1 = new Bar1();
MyEnum2 = new Bar2();
}
public Bar1 MyEnum1 { get; set; }
public Bar2 MyEnum2 { get; set; }
}
现在尝试序列化Foo
var parameter = new Foo();
var serializer = new XmlSerializer(parameter.GetType());
// ERROR System.InvalidOperationException: [...]
重命名后,EnumSameName
一切都按预期工作。
这个错误来自哪里?