将数据发布到第三方支付提供商时,我通常会序列化代表字段的MVC模型。我已多次使用这种技术并且工作得很好。
但是现在我面对这个规范:
请注意,字段名称包含方括号。我无法弄清楚如何在我的模型属性中包含完整的字段名称,目前模型如下所示:
public string action { get; set; }
public string api_key { get; set; }
public string RetailerUniqueRef { get; set; }
public string InstallationID { get; set; }
public float Price { get; set; }
public string Description { get; set; }
public string Code { get; set; }
public float Deposit { get; set; }
public string SchemeCode { get; set; }
如您所见,属性名称只是字段名称的一部分。如果我像这样添加方括号:
public string identification[api_key] { get; set; }
这失败了,因为编译器非常正确地认为它是一个数组。 如何在属性名称中包含方括号,还是有另一种方法呢?
答案 0 :(得分:0)
也许您可以使用某种形式的属性来标记您的属性,然后使用反射来获取名称。但是在示例中,您提供的data
对象是NameValueCollection
,其中键是字符串,这意味着无需执行此操作,甚至不需要使用属性名称。
我怀疑你需要做这样的事情: -
var foo = new Foo();
foo.ApiKey = "SomeRandomApiKeySetByTheProvider";
foo.Code = "ONIF6";
var data = new NameValueCollection();
data.Add("Identification[api_key]", foo.ApiKey);
...
data.Add("Finance[Code]", foo.Code);