Чтобы получить полезную нагрузку JSON, которую вы хотите использовать с помощью специального распознавателя, из другого вопроса, вам нужно, чтобы ваша структура классов выглядела следующим образом:
public class TagModel
{
[UseWithApiMethods("UpdateTag")]
public TagNode tagNode { get; set; }
public class TagNode
{
[UseWithApiMethods("UpdateTag")]
public object query { get; set; }
[UseWithApiMethods("UpdateTag")]
public int type { get; set; }
[UseWithApiMethods("UpdateTag")]
public object filter { get; set; }
[UseWithApiMethods("UpdateTag")]
public object ldapPaths { get; set; }
[UseWithApiMethods("UpdateTag")]
public int editPermissions { get; set; }
[UseWithApiMethods("UpdateTag")]
public int id { get; set; }
[UseWithApiMethods("UpdateTag")]
public bool disallowed { get; set; }
[UseWithApiMethods("UpdateTag")]
public string name { get; set; }
}
[UseWithApiMethods("UpdateEndpointsFromTags", "UpdateTag")]
public int parentId { get; set; }
... (other properties for your other API methods) ...
}
Обратите внимание, что вы должны поставить [UseWithApiMethods("UpdateTag")]
на свойство tagNode
в root классе , а также для всех свойств в TagNode
дочернем классе, которые вы хотите включить в JSON. (Это необходимо, потому что распознаватель будет включать только свойства, которые вы специально пометили атрибутом [UseWithApiMethods]
. Поэтому вам нужно пометить их все, если вы хотите включить их все).
Для свойства parentId
вы уже использовали его для метода UpdateEndpointsFromTags
, но это не проблема; Вы также можете использовать его для других методов, таких как UpdateTag
. Вам просто нужно добавить имена методов к атрибуту [UseWithApiMethods]
следующим образом:
[UseWithApiMethods("UpdateEndpointsFromTags", "UpdateTag")]
public int parentId { get; set; }
Вот скрипка, которая демонстрирует: https://dotnetfiddle.net/6TqbFz
Надеюсь, это это то, что вы ищете и разрешает вашу путаницу.