如何将流转换为对象。
我有一个 WebApi
[HttpGet]
public AttachmentViewModel DownloadAttachementDetailsByIds(int attachementDetaisId)
{
AttachmentViewModel attachment = new AttachmentViewModel
{
AttachmentName = "Observe",
AttachmentType = ".c",
AttachmentDetailsID = 123,
AttachmentDetails = Encoding.ASCII.GetBytes("some contant"),
AttachmentSize = 12 //some valid size
};
return attachment;
}
现在我调用这个 GET 方法如下:
WebClient webClient = new WebClient();
Stream stream = webClient.OpenRead(documentRepositoryApiUrl + "DocRepoApi/DownloadAttachementDetailsById?attachementDetaisId=97");
嗯,我的调用成功了,但是一旦我将所有数据放入流中,我如何才能再次将它们全部检索为同一个 AttachmentViewModel
对象。如果 API 返回任何错误如何读取它。
最佳答案
您可以使用DownloadString
来自 WebClient
的方法并将其反序列化到您的模型中(例如使用 JSON.NET)。
WebClient webClient = new WebClient();
var data = webClient.DownloadString(url);
var deserialized = JsonConvert.DeserializeObject<AttachmentViewModel>(data);
如果发生错误,将会抛出相应的WebException
。
关于c# - 如何将 Stream 转换为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28106534/