Xamarin.Forms 服务返回 List<T> 加上状态代码

问题描述

这是我生成的服务的代码。一切正常。我获得了照片列表,但我想获得 status_code 并在 viewmodel 中创建逻辑并向用户显示消息。

 public async Task<IList<Photo>> GetAllPosts()
        {
            try
            {
                if (CrossConnectivity.Current.IsConnected)
                {
                    instagramCloneClient.DefaultRequestHeaders.Clear();
                    instagramCloneClient.DefaultRequestHeaders.Add("Accept","application/json");
                    var response = await instagramCloneClient.GetAsync($"/photos");
                    var status_code=(int)response.StatusCode;
                    if (response.IsSuccessstatusCode)
                    {
                        string jsonMessage;
                        using (Stream responseStream = await response.Content.ReadAsstreamAsync())
                        {
                            jsonMessage = new StreamReader(responseStream).ReadToEnd();
                        }

                        IList<Photo> photos = JsonConvert.DeserializeObject<IList<Photo>>(jsonMessage);
                        return photos;
                    }
                    else
                    {
                        return null;
                    }
                }
                else
                {

                    return null;
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
                string error = ex.Message;
                return null;
            }
        } 

我返回照片列表。我还想要 response.StatusCode 到我从中调用函数viewmodel。我必须返回 IList,如何包含一些 int status_code?最佳做法是什么?

解决方法

您有多种选择。您可以使用 List 和 StatusCode 的整数/枚举创建一个新模型。另一种选择是返回一个 ArrayList 列表。