我正在执行post
到工作台api,看起来像这样
public JToken Create(ObjCode objcode, object parameters) {
var p = parameterObjectToStringArray(parameters, "apiKey=" + APIKey);
var json = _client.DoPost($"/{objcode}", p);
return json;
}
parammeterObjectToStringArray
如下
private string[] parameterObjectToStringArray(object parameters, params string[] toAdd) {
List<string> p;
if (parameters != null)
{
var properties = parameters.GetType().GetProperties();
p = new List<string>(properties.Length);
foreach (var prop in properties)
{
var line = $"{prop.Name}={prop.GetValue(parameters, null)}";
p.Add(line);
}
}
else
{
p = new List<string>();
}
p.AddRange(toAdd);
return p.ToArray();
}
它需要anonymous type
作为第一个看起来像这个
new {name = "name of something", price = 33.49}
并将所有这些属性转换为字符串数组。
我希望能够创建匿名类型并动态添加特性并传递给此函数。有没有办法创建new {}
并在其中插入值而不创建实现IEnuemerable的匿名类型?我尝试了dynamic JObject
,但第var properties = parameters.GetType().GetProperties();
行返回了我不期望的值,而不是parameters
对象中的值。
我可以为此创建另一个功能,但我希望所有内容都集中在一起。