1
嗨我想要反序列化一個HttpPost方法調用內的授權屬性。我使用ASP.NET Web Api框架。反序列化一個http post內的對象
這裏是我的代碼:
public override void OnAuthorization(HttpActionContext actionContext)
{
var rezult = DeserializeStream<EvaluationFormDataContract>(actionContext.Request.Content.ReadAsStreamAsync().Result);
}
private T DeserializeStream<T>(Stream stream)
{
var binaryFormatter = new BinaryFormatter();
var rez = binaryFormatter.Deserialize(stream);
var t = (T)binaryFormatter.Deserialize(stream);
return t;
}
此代碼得到執行,我得到這個異常時的BinaryFormatter tryes到反序列化:
輸入流不是有效的二進制格式。起始內容(字節)爲:73-74-75-64-65-6E-74-41-73-73-69-67-6E-6D-65-6E-74 ...
我在做什麼錯?
它似乎不工作,我收到似乎並不是JSON format.It數據看起來喜歡這樣的:「PERSONID = 4&studentId = 10」 – aleczandru
在這種情況下使用[HttpUtility.ParseQueryString](HTTP: //msdn.microsoft.com/en-us/library/ms150046.aspx)方法。見編輯的答案。 –
**另一種解決方案**。我能夠使用[this]將Query String'Key'和'Value'轉換爲Json格式(http://stackoverflow.com/questions/12428947/how-do-i-convert-a-querystring-toa-a- json的字符串)和[這](http://stackoverflow.com/questions/24052372/deserialize-http-post-parameters)後。希望有助於。 – stom