Как вставить свойство в анонимный тип?
Я выполняю post
на API-интерфейс Workfront, который выглядит так
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
объект.
Я мог бы создать другую функцию для этого, но я хочу, чтобы все было централизовано.