【发布时间】:2018-11-05 07:44:50
【问题描述】:
我有一个与 Jira rest api 一起使用的 Jira 对象;当我只有一个 Jira 项目,因此一组字段来处理这个问题时工作正常,但是现在我有许多具有不同字段的不同项目,我需要能够动态删除某些项目以前不需要的字段我将它传递给 Jira。我知道我可以为每个项目创建一个自定义对象,但我宁愿制作和维护一个包含所有可能项目的对象,并在将其传递给 api 之前删除每个项目不需要的内容。
默认字段:
[DataContract]
public class FieldsUpdate
{
[DataMember(Name = "issuetype")]
public Issuetype issuetype;
[DataMember(Name = "project")]
public Project project;
[DataMember(Name = "labels")]
public List<object> labels = new List<object>();
[DataMember(Name = "description")]
public string description;
[DataMember(Name = "summary")]
public string summary;
[DataMember(Name = "customfield_10400")]
public object ExpectedDelDate;
}
上层字段:
[DataContract]
public class JiraItmAddUpdate
{
[DataMember(Name = "fields")]
public FieldsUpdate fields = new FieldsUpdate();
public JiraItmAddUpdate()
{
FieldsUpdate fields = new FieldsUpdate();
}
}
当前使用示例:
JiraItmAddUpdate JiriUpdateFlds = new JiraItmAddUpdate();
JiriUpdateFlds.fields.summary = "Some Summary";
JiriUpdateFlds.fields.description = "Some Description"
var Request = JiraHttpClient.Client.PutAsJsonAsync(str_IssueKey + "/", JiriUpdateFlds);
这会产生类似的东西
{"fields": {
"summary": "Some Summary",
"description" = "Some Description"
}
}
作为一个例子,有时我需要结束的只是摘要,但它必须保留“字段”父级。我看过 ExpandoObject 但似乎无法让它做我想做的事,有人知道我如何发送动态对象而无需为每个 jira 项目构建单独的字段类吗?
【问题讨论】:
-
正确的解决方案是建立一个类层次结构,这也可能使您在代码中更容易,因为您不再需要猜测哪些字段需要帖子类型 X 的值.
标签: c# json jira-rest-api