В настоящее время я использую следующий метод расширения для выполнения этой задачи, но похоже, что для выполнения этого может быть какой-то существующий включенный метод или расширение (или, по крайней мере, подмножество этого). Если в ничего нет, Json.NET, то какой рекомендуемый процесс или как изменить код ниже, чтобы быть ближе к рекомендуемому процессу.Как добавить или обновить значение JProperty в объекте JObject
public static partial class ExtensionMethods
{
public static JObject SetPropertyContent(this JObject source, string name, object content)
{
var prop = source.Property(name);
if (prop == null)
{
prop = new JProperty(name, content);
source.Add(prop);
}
else
{
prop.Value = JContainer.FromObject(content);
}
return source;
}
}
Я могу подтвердить приведенный выше код работает для основного использования, но я не уверен, насколько хорошо он держит до более широкого использования.
Причина, по которой у меня есть это расширение, возвращающее JObject
, заключается в том, что вы сможете цеплять вызовы (либо несколько вызовов этого расширения, либо другим методам и расширениям).
т.е.
var data = JObject.Parse("{ 'str1': 'test1' }");
data
.SetPropertyContent("str1", "test2")
.SetPropertyContent("str3", "test3");
// {
// "str1": "test2",
// "str3": "test3"
// }
http://codereview.stackexchange.com/? –
Откуда вы знаете, что то, что вы делаете, «неправильно»? или не правильно »звучит как codereview - это то, что вы хотите – MethodMan
обзор кода - это то, что это звучит – MethodMan