Fails to deserialize:
KeyValuePair<DataTable, int> pair = new KeyValuePair<DataTable, int>(new DataTable("test"), 0);
string serializedpair = serializer.Serialize(pair);
var pair2 = (KeyValuePair<DataTable, int>)serializer.Deserialize(serializedpair, typeof(KeyValuePair<DataTable, int>));