Как вставить свойство в анонимный тип?

Я выполняю 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 объект.

Я мог бы создать другую функцию для этого, но я хочу, чтобы все было централизовано.

0 ответов

Другие вопросы по тегам