[英]Servicestack SendAll is working but sending an error
我正在發送一個 CSV 並對其進行反序列化。
List<CompanyService> responseX;
using (var reader = new StreamReader(files[0].InputStream))
{
// convert stream to string
string text = reader.ReadToEnd();
List<InsertCompany> deserializeFromString = ServiceStack.Text.CsvSerializer.DeserializeFromString<List<InsertCompany>>(text);
responseX = Gateway.SendAll<CompanyService>(deserializeFromString);
}
/// <summary>
/// To insert the company
/// </summary>
/// <returns></returns>
public long Post(InsertCompany request)
{
var company = request.ConvertTo<Company>();
company.AuditId = UserAuth.Id;
var result = Db.Insert<Company>(company, selectIdentity: true);
//History
CreateCompanyHistory(result, "INSERT", UserAuth.Id);
//See the SQL that was generated
//var lastSql = Db.GetLastSql();
return result;
}
當我調用 Sendall 時,它調用 CompanyService 並處理所有列表,然后發回錯誤。 但是記錄會保存在數據庫中。 錯誤= System.Runtime.Serialization.SerializationException: 'Type definitions should start with a '{', expecting serialized type 'CompanyService', got string starting with: 71'
附帶說明一下,我找不到 ServiceStack.Text.CsvSerializer.DeserializeFromString 的任何文檔
編輯 -
我的 CSV 清晰
CompanyName,ParentCompanyId,City,Country,Email,Phone,Address1,Address2,Latitude,Longitude
Sub Company 8A,8,,,a@c.n,,dfg,,0,0
Sub Company 8B,8,,,W@RF.COM,7777,f,,0,0
Sub Company 8C,8,,,a@c.com,7777,d,,0,0
Sub Company 8D,8,,,abc@gmail.com,7777,2,,0,0
Sub Company 8E,8,,,abc@gmail.com,7777,2,,0,0
Sub Company 8F,8,,,abc@gmail.com,7777,2,,0,0
- 編輯 2
這些是我使用 ST 編寫的第一個 API。 我忘記修改它們以使用正確的返回類型。 這是我一直在使用的,切換到它解決了錯誤。
public class ResponseList : IResponseItemList
{
public List<dynamic> Result { get; set; }
}
public interface IResponseItemList
{
List<dynamic> Result { get; set; }
}
public class Response : IResponseItem
{
public dynamic Result { get; set; }
}
public interface IResponseItem
{
dynamic Result { get; set; }
}
該錯誤表明 CSV 不是CsvSerializer
期望的格式,例如,當您嘗試在 CSV 中反序列化 JSON 時,您會收到此錯誤。
CsvSerializer.Deserialize*
API 應該反序列化的唯一文本是最初使用CsvSerializer
序列化的 CSV。 它應該能夠反序列化簡單的通用 CSV 文件,但是一旦您擁有任何復雜的類型(CSV 不支持),它就會期望由CsvSerializer
生成的自以為是的輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.