2016-06-02 1 views
2
[TestFixture] 
public class XmlIgnoreWithNewModifierTest 
{ 
    public class Parent 
    { 
     public int Name { get; set; } 
    } 

    public class Child : Parent 
    { 
     [XmlIgnore] 
     public new int Name 
     { 
      get { throw new NotImplementedException(); } 
     } 
    } 

    [Test] 
    public void Test() 
    { 
     var serializer = new XmlSerializer(typeof(Child)); 
     var stream = new MemoryStream(); 

     // Throws 
     serializer.Serialize(stream, new Child()); 
    } 
} 

La dernière ligne de code jetterait InvalidOperationException avec un NotImplementedException intérieur. Rendre Parent.Name virtual et Child.Name override n'aide pas.C# - XmlIgnore ne fonctionne pas avec priorité ou nouveau modificateur

Je me demande s'il est possible de faire que XmlIgnore ne fonctionne que sur Child.Name mais pas Parent.Name?

Répondre