Я нашел этот код на форуме Microsoft. Это пока один из самых простых способов, который легко понять и использовать. Это сэкономило мне часы, я настроил его как метод расширения без каких-либо изменений в реальном методе. Ниже приведен код. это не требует особых объяснений.
Вы можете использовать две сигнатуры функции с одинаковой реализацией
1) public static DataSet ToDataSetFromObject (этот объект dsCollection)
2) публичный статический DataSet ToDataSetFromArrayOfObject (этот объект [] arrCollection). Я буду использовать это, например.
// <summary>
// Serialize Object to XML and then read it into a DataSet:
// </summary>
// <param name="arrCollection">Array of object</param>
// <returns>dataset</returns>
public static DataSet ToDataSetFromArrayOfObject( this object[] arrCollection)
{
DataSet ds = new DataSet();
try {
XmlSerializer serializer = new XmlSerializer(arrCollection.GetType);
System.IO.StringWriter sw = new System.IO.StringWriter();
serializer.Serialize(sw, dsCollection);
System.IO.StringReader reader = new System.IO.StringReader(sw.ToString());
ds.ReadXml(reader);
} catch (Exception ex) {
throw (new Exception("Error While Converting Array of Object to Dataset."));
}
return ds;
}
Чтобы использовать это расширение в коде
Country[] objArrayCountry = null;
objArrayCountry = ....;// populate your array
if ((objArrayCountry != null)) {
dataset = objArrayCountry.ToDataSetFromArrayOfObject();
}