using System;
using System.IO;
using System.Xml.Serialization;
namespace Code.Without.IDE
{
[AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Parameter|AttributeTargets.ReturnValue, Inherited = true)]
public class XmlInheritIgnoreAttribute : System.Xml.Serialization.XmlIgnoreAttribute
{
}
[Serializable]
public abstract class C1
{
[XmlInheritIgnore]
public abstract bool IsValid_C1 { get; set;}
}
[Serializable]
public class C2 : C1
{
public bool IsValid_C2 { get; set; }
public override bool IsValid_C1 { get; set;}
public C2()
{
IsValid_C1 = true;
IsValid_C2 = false;
}
}
public static class AbstractPropertiesAttributeTest
{
public static void Main(string[] args)
{
C2 c2 = new C2();
using(MemoryStream ms = new MemoryStream())
{
XmlSerializer ser = new XmlSerializer(typeof(C2));
ser.Serialize(ms, c2);
string result = System.Text.Encoding.UTF8.GetString(ms.ToArray());
Console.WriteLine(result);
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uSU87CnVzaW5nIFN5c3RlbS5YbWwuU2VyaWFsaXphdGlvbjsKCm5hbWVzcGFjZSBDb2RlLldpdGhvdXQuSURFCnsKICAgIAogICAgW0F0dHJpYnV0ZVVzYWdlQXR0cmlidXRlKEF0dHJpYnV0ZVRhcmdldHMuUHJvcGVydHl8QXR0cmlidXRlVGFyZ2V0cy5GaWVsZHxBdHRyaWJ1dGVUYXJnZXRzLlBhcmFtZXRlcnxBdHRyaWJ1dGVUYXJnZXRzLlJldHVyblZhbHVlLCBJbmhlcml0ZWQgPSB0cnVlKV0KICAgIHB1YmxpYyBjbGFzcyBYbWxJbmhlcml0SWdub3JlQXR0cmlidXRlIDogU3lzdGVtLlhtbC5TZXJpYWxpemF0aW9uLlhtbElnbm9yZUF0dHJpYnV0ZQogICAgewogICAgfQoKICAgIFtTZXJpYWxpemFibGVdCiAgICBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQzEKICAgIHsKICAgICAgICBbWG1sSW5oZXJpdElnbm9yZV0KICAgICAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbCBJc1ZhbGlkX0MxIHsgZ2V0OyBzZXQ7fQogICAgfQoKICAgIFtTZXJpYWxpemFibGVdCiAgICBwdWJsaWMgY2xhc3MgQzIgOiBDMQogICAgewogICAgICAgIHB1YmxpYyBib29sIElzVmFsaWRfQzIgeyBnZXQ7IHNldDsgfQoKICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgYm9vbCBJc1ZhbGlkX0MxIHsgZ2V0OyBzZXQ7fQoKICAgICAgICBwdWJsaWMgQzIoKQogICAgICAgIHsKICAgICAgICAgICAgSXNWYWxpZF9DMSA9IHRydWU7CiAgICAgICAgICAgIElzVmFsaWRfQzIgPSBmYWxzZTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBjbGFzcyBBYnN0cmFjdFByb3BlcnRpZXNBdHRyaWJ1dGVUZXN0CiAgICB7CiAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykKICAgICAgICB7CiAgICAgICAgICAgIEMyIGMyID0gbmV3IEMyKCk7CiAgICAgICAgICAgIHVzaW5nKE1lbW9yeVN0cmVhbSBtcyA9IG5ldyBNZW1vcnlTdHJlYW0oKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWG1sU2VyaWFsaXplciBzZXIgPSBuZXcgWG1sU2VyaWFsaXplcih0eXBlb2YoQzIpKTsKICAgICAgICAgICAgICAgIHNlci5TZXJpYWxpemUobXMsIGMyKTsKICAgICAgICAgICAgICAgIHN0cmluZyByZXN1bHQgPSBTeXN0ZW0uVGV4dC5FbmNvZGluZy5VVEY4LkdldFN0cmluZyhtcy5Ub0FycmF5KCkpOwogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUocmVzdWx0KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQ==