У меня есть класс с полем с именем "productName". Я хотел бы разрешить псевдоним («имя») для этого поля.
Теперь я мог бы сделать это, просто добавив другое поле и несколько логик c, но, возможно, есть более удобный способ?
Конструктор выглядит следующим образом:
[JsonConstructor]
public OsInfo(string name = null, string platform = null, string version = null) {
Цель состоит в том, чтобы принять оба из этих JSON кусков:
Используя "имя":
'os': {
'platform': 'Android-armv7-a',
'name': 'Android',
'version': 'Android 7.1.2'
}
Использование «productname»:
'os': {
'platform': 'Android-armv7-a',
'productname': 'Android',
'version': 'Android 7.1.2'
}
Мое текущее решение выглядит следующим образом, но я надеялся найти более удобный способ:
[JsonConstructor]
public OsInfo(string name = null, string productname = null, string platform = null, string version = null)
{
if (name != null && productname != null)
{
throw new ArgumentException("Don't use both aliases for OS name");
}
this.Name = name != null ? name : productname;