好吧,我理解了属性dependency如何在JSON模式中工作,我可以成功地组合一个在JsonSchemaValidator中工作正常的JSON模式:
{
"type" : "object",
"properties" : {
"ServerName" : {
"type" : "string"
},
"Username" : {
"type" : "string"
},
"Password" : {
"type" : "string"
}
},
"dependencies" : {
"Username" : ["ServerName"],
"Password" : ["ServerName"]
}
}
在上面的JSON模式中,我们的想法是仅在存在ServerName时接受用户名或密码。
我的问题是如何在C#中构建模型,以便以与Required属性相同的方式识别依赖项。
我所期待的是这样的:
public class TestModel
{
public string ServerName { get; set; }
[JsonProperty(Dependency = new [] {"ServerName"})]
public string Username { get; set; }
[JsonProperty(Dependency = new[] { "ServerName" })]
public string Password { get; set; }
}
如果没有该属性,那么我需要知道如何使用JSON模式方法将其添加到模式。
我知道在JSON-schema上有一个名为Dependencies的属性,我尝试了但它没有效果,我不确定如何正确使用它。
我尝试了类似下面的内容,但它根本没有改变架构:
...
var jsonSchemaGenerator = new JSchemaGenerator();
var schema = jsonSchemaGenerator.Generate(typeof(TestModel));
schema.Dependencies.Add("Password", "ServerName");
schema.Dependencies.Add("Username", "ServerName");
var schemaJson = schema.ToString();
...
有什么想法吗?