Having some difficulties deserializing the following xml to an object in the most efficient/cleanest possible way:
<item xsi:type="ns2:Map" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <item>
        <key xsi:type="xsd:string">mailinglistid</key> 
        <value xsi:type="xsd:string">1</value> 
    </item>
    <item>
        <key xsi:type="xsd:string">uniqueid</key> 
        <value xsi:type="xsd:string">1a0d0d2195</value> 
    </item>
    <item>
        <key xsi:type="xsd:string">name</key> 
        <value xsi:type="xsd:string">OSM NL</value> 
    </item>
</item>
This is a single item along with its properties. As you can see the properties are defined as key/value pairs.
Because they are key value pairs i could not find a way to use the Xml deserialize attributes (as described in this question: How to deserialize xml to object )
Therefore i have created the following alternative:
// Retrieves all the elements from the "return" node in the Mailinglist_allResponse node.
var items = response.ResponseFromServer.Descendants(_engineResponseNamespace + "Mailinglist_allResponse").Descendants("return").Elements();
foreach (var item in items)
{
    var values = item.Descendants("item").ToArray();
    var list = new EngineMailingList
    {
        MailingListId =
            values.Descendants("key")
                .First(v => v.Value == "mailinglistid")
                .ElementsAfterSelf("value")
                .First()
                .Value,
        UniqueId =
            values.Descendants("key")
                .First(v => v.Value == "uniqueid")
                .ElementsAfterSelf("value")
                .First()
                .Value,
        Name =
            values.Descendants("key")
                .First(v => v.Value == "name")
                .ElementsAfterSelf("value")
                .First()
                .Value,
    };
    result.Add(list);
As you can see this is alot more code than when using the deserialize attributes. Is there any way i could still use these attributes so that my code could be cleaner/ efficient? i am going to have to make alot of these functions otherwise.
 
     
    