Я использовал JsonPropertyAttribute
, чтобы заставить DefaultContractResolver
использовать мое личное поле:
public class Program
{
public static async Task Main(string[] args)
{
var generator = new JsonSchemaGenerator();
JsonSchema schema = generator.Generate(typeof(Person));
}
}
public class Person
{
[JsonProperty]
private string SecretName;
public string PublicName { get; set; }
}
Полученная схема имеет как SecretName
, так и PublicName
.
Anальтернативой также может быть написание пользовательского IContractResolver
, как показано здесь .
Обратите внимание, что я сделал это, посмотрев код генерации схемы для устаревших методов в JSON.net, но яПредположим, что это будет работать аналогично для отдельного пакета.Насколько я знаю, исходный код для этого не является общедоступным.