当我想要将订阅者添加到兴趣中时,将布尔值设置为true,它仍然为false。使用类似的请求更新合并字段值没有问题。在调试时我发现两者之间存在一个区别,那就是兴趣在请求中有一个“键”和“值”,而合并字段则没有:
关于兴趣的回答看起来像这样,它没有“关键”和“价值”。
我做错了什么?
我的updateMember函数的相关部分如下所示:
static void updateMember(){
Dictionary<string, object> mergefieldsDic = new Dictionary<string, object>();
mergefieldsDic.Add("POSTCODE","4242");
Dictionary<string, bool> interestDic = new Dictionary<object, bool>();
interestDic.Add("cb0b422bf8", true);
request.RequestFormat = DataFormat.Json;
request.AddBody(new MemberRequest(mergefieldsDic, interestDic));
IRestResponse<Member> response = client.Execute<Member>(request);
foreach (var key in response.Data.merge_fields.Keys)
{
string value = response.Data.merge_fields[key].ToString();
Console.WriteLine(value);
}
foreach (var key in response.Data.interests.Keys)
{
string value = response.Data.interests[key].ToString();
Console.WriteLine(value);
}
}
我的MemberRequest类看起来像这样
public class MemberRequest
{
public MemberRequest(){}
public MemberRequest(Dictionary<string, object> merge_fields, Dictionary<object, bool> interests)
{
this.merge_fields = merge_fields;
this.interests = interests;
}
public string email_address { get; set; }
public string status { get; set; }
public Dictionary<string,object> merge_fields { get; set; }
public Dictionary<object, bool> interests { get; set; }
}
我的会员班看起来像这样
public class Member
{
public string id { get; set; }
public string email_address { get; set; }
public string status { get; set; }
public Dictionary<string,object> merge_fields { get; set; }
public Dictionary<object,bool> interests { get; set; }
}
我尝试将两个兴趣词典更改为<bool,object>
,\<string,bool>
和<string,string>
,但没有任何效果。
如果我不使用MemberRequest类而只是做request.AddBody(new { interests = new { cb0b422bf8 = true} });
答案 0 :(得分:0)
由于某些原因,我在更新成员时没有收到错误但是当我尝试使用上述类创建一个新成员时,我从API得到了一个错误的请求,即兴趣是数组而不是对象,因为它必须。为了解决这个问题,我将我的兴趣Dictionary<string,bool>
更改为Dictionary<string,object>
。
最初,当我更改字典时,我最终得到了两个几乎相同的构造函数,因此我的错误是“以下方法或属性之间的调用不明确”。