[英]How to perform serialization and deserialization of datatables to and from JSON
[英]Recreating DataReader from JSON - Serialization and Deserialization
幾天來我一直在努力解決以下問題,最后我希望您能幫助我。
我有一個正在運行的WebService,需要從中返回不可序列化的IDataReader接口(它必須是DataReader-我知道DataTable或DataSet是可序列化的,但是某些要求迫使我使用IDataReader),因此我將其序列化為JSON發送沒有問題,但現在我需要將json反序列化回客戶端的DataReader中。
你們知道我該如何完成嗎?
我的JSON被序列化為以下格式:
[
{
"Cst_Id": 3,
"Cst_Name": "Test 1adssad",
"CtA_Id": 3
},
{
"Cst_Id": 3,
"Cst_Name": "Test 1adssad",
"CtA_Id": 8
},
.....
]
如果您被迫使用IDataReader,則可以使用.NET的協議緩沖區DataReader擴展而不是Json來序列化/反序列化IDataReader。
協議緩沖區在WebService中非常有效。
例:
string connstring1 = "Data Source=server1;Initial Catalog=northwind;user=xxx;password=xxx";
//Serializing an IDataReader into a ProtoBuf:
Stream buffer = new MemoryStream();
using (var c1 = new SqlConnection(connstring1))
{
c1.Open();
// Serialize SQL results to a buffer
using (var command = new SqlCommand("SELECT * FROM products", c1))
using (var reader = command.ExecuteReader())
DataSerializer.Serialize(buffer, reader);
// Deserialize, Read them back
buffer.Seek(0, SeekOrigin.Begin);
using (var reader = DataSerializer.Deserialize(buffer))
{
while (reader.Read())
{
Console.WriteLine(reader["ProductName"]);
}
}
}
}
有關詳細信息,請參見.NET的協議緩沖區DataReader擴展。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.