加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用restsharp序列化对象并将其传递给WebApi而不是序列化

发布时间:2020-12-15 04:01:14 所属栏目:百科 来源:网络整理
导读:我有一个看起来像的模型. public class StoreItemViewModel{ public Guid ItemId { get; set; } public ListGuid StoreIds { get; set; } [Required] public string Description { get; set; } //[Required] //[DataMember(IsRequired = true)] public int I
我有一个看起来像的模型.
public class StoreItemViewModel
{
    public Guid ItemId { get; set; }
    public List<Guid> StoreIds { get; set; }
    [Required]
    public string Description { get; set; }
    //[Required]
    //[DataMember(IsRequired = true)]
    public int ItemTypeId { get; set; }


}

我有一个小帮手,使用的是使用RestSharp.

public static IRestResponse Create<T>(object objectToUpdate,string apiEndPoint) where T : new()
    {
        var client = new RestClient(CreateBaseUrl(null))
        {
            Authenticator = new HttpBasicAuthenticator("user","Password1")
        };

        var request = new RestRequest(apiEndPoint,Method.POST);
        //request.JsonSerializer = new JsonSerializer();
       // {RequestFormat = DataFormat.Json};
        request.AddObject(objectToUpdate);
       // clientJsonSerializer = new YourCustomSerializer();
        var response = client.Execute<T>(request);
        return response;
    }

调试控制器在我的api

[HttpPost]
    public HttpResponseMessage Create([FromBody]StoreItemViewModel myProduct)
    {
        //check fields are valid
     .........
     }

我的产品产品全部与公共List Store集成,它总是返回单一的奖励与空的Guid.即使我添加了两个或更多StoreIds

我假设这是因为我的应用程序中的“创建”帮助器发生错误.

任何人都可以帮助这个导致头痛的事情.

发送到webapi的原始数据看起来像

ItemId=f6dbd244-e840-47e1-9d09-53cc64cd87e6&ItemTypeId=6&Description=blabla&StoreIds=d0f36ef4-28be-4d16-a2e8-37030004174a&StoreIds=f6dbd244-e840-47e1-9d09-53cc64cd87e6&StoreId=d0f36ef4-28be-4d16-a2e8-37030004174a

解决方法

我设法得到这个工作.我不认为它是正确的方式,但它的作品.
public static IRestResponse Create<T>(object objectToUpdate,"Password1")
        };
        var json = JsonConvert.SerializeObject(objectToUpdate);
        var request = new RestRequest(apiEndPoint,Method.POST);
        request.AddParameter("text/json",json,ParameterType.RequestBody);
        var response = client.Execute<T>(request);
        return response;
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读