how to use XmlAttributeOverrides for deserializing in c#

I am trying to deserialize the custom config keys using the same class. I am new to Serializer. The deserialized object have null value. Can somebody guide me what am I doing wrong here. I have pasted the code here for trying in a console app.

public class Program
    private static void Main(string[] args)
        var documentPropertyMapping =
                "Activity", "value", "Function").ToDictionary(x => x.Key, x => x.Value);
        /*var   FileTypeMimeMapping = GetCustomSectionSettingList<CustomSectionConfigElement>("EDRMSDocumentMIMEPropertyMapping", "FileType", "value", "MIMEType").ToDictionary(x => x.Key.TrimStart('.'), x => x.Value);

    private static List<T> GetCustomSectionSettingList<T>(string sectionName, string elementName, string keyAttributeName,
        string valueAttributeName) where T : new()
        var xml = @"<root><abc>
        <Activity value = ""a Document"" Function = ""a Documentation"" />
        <Activity value = ""b Document"" Function = ""a Documentation"" />
        var settings = new List<T>();
        var configDoc = XElement.Parse(xml);

        var xOver = new XmlAttributeOverrides();
            var attrs = new XmlAttributes();
            var root = new XmlRootAttribute(elementName);
            attrs.XmlRoot = root;
            xOver.Add(typeof (T), attrs);
            var attrs = new XmlAttributes();
            var attribute = new XmlElementAttribute(keyAttributeName);
            xOver.Add(typeof (T), "Key", attrs);
            var attrs = new XmlAttributes();
            var attribute = new XmlElementAttribute();
            attribute.ElementName = valueAttributeName;
            xOver.Add(typeof (T), "Value", attrs);

        var serializer = new XmlSerializer(typeof (T), xOver);
        foreach (var sectionXml in configDoc.XPathSelectElements(sectionName))
            foreach (var elem in sectionXml.Elements())
                settings.Add((T) serializer.Deserialize(elem.CreateReader()));
        return settings;

    #region custom section

    public class CustomSectionConfigElement
        public string Key { get; set; }
        public string Value { get; set; }

    #endregion custom section

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s