0

我正在尝试使用 YouTrackSharp 创建一个新问题,回到我的本地跟踪实例。我可以很好地搜索,所以我知道我的连接和凭据正在工作。

根据示例,我尝试了动态以及实例化问题()。

编译失败

dynamic issue = new Issue()
{
    type = "Question",
    summary = model.Summary,
    description = model.Description,
    projectShortName = "CSR",
};

此代码可编译,但在运行时无法将动态转换为问题参数,但“YouTrackSharp.Issues.IssueManagement.CreateIssue(YouTrackSharp.Issues.Issue) 的最佳重载方法匹配”有一些无效参数

dynamic issue = new
{
    type = "Question",
    summary = model.Summary,
    description = model.Description,
    projectShortName = "CSR",
};
YouTrackIssueManager().CreateIssue(issue);
4

1 回答 1

1

为了找到我在github repo上找到的关于 Breaking 在 2.0 中更改的答案- 然后继续讨论阅读规范以获取示例。

摘录:

问题现在是动态类型。要使用它,您需要将问题声明为动态的。它拥有的唯一固定字段是“Id”(尽管稍后可能会添加一些其他字段)。这样做的原因是它现在与 YouTrack 本身的工作方式是一致的,即问题中的每个字段基本上都是自定义字段。您现在可以拥有任意数量的自定义字段!这是 2.0 中的一个重大变化,不幸的是与现有代码不兼容。

有效的答案/代码是,使用 Dynamic 和 new Issue() 的组合(这对我来说是新语法,我现在正在进一步研究)。

dynamic issue = new Issue();
issue.Type = "Question";
issue.Summary = model.Summary;
issue.Description = model.Description;
issue.ProjectShortName = "CSR";
YouTrackIssueManager().CreateIssue(issue);

感谢@hhariri在这个项目上所做的工作。

于 2014-12-07T16:47:01.903 回答