0

在向第三方支付提供商发布数据时,我通常会序列化一个表示字段的 MVC 模型。我已经多次使用这种技术并且效果很好。

但是现在我面临着这个规范: http发布参数

请注意,字段名称包含方括号。我不知道如何在我的模型属性中包含完整的字段名称,目前模型如下所示:

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; }

这失败了,因为编译器非常正确地认为它是一个数组。如何在属性名称中包含方括号,或者还有其他方法吗?

4

1 回答 1

0

也许您可以使用某种形式的属性来标记您的属性,然后使用反射来获取名称。但是,在您提供的示例中,data对象是 a 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);
于 2012-10-12T14:00:24.817 回答