json.net を使用してオブジェクトを json にシリアル化するには、json プロパティごとにラベル付けされた属性を持つ POCO を作成する必要があります。
public class Priority
{
[JsonProperty("id")]
public string Id { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("iconUrl")]
public string IconUrl { get; set; }
}
これを使用して Jira の REST API を操作していますが、すべての標準フィールドでうまく機能します。残念ながら、カスタム フィールドは問題が発生する場所です。カスタム フィールドにはフィールド名が決まっておらず、代わりに番号が割り当てられています。したがって、「Resolution Type」カスタム フィールドがある場合、プロパティは「ResolutionType」ではなく「customfield_10200」と呼ばれます。
同じカスタム フィールドを持つ複数の展開を扱っていますが、それらはすべて異なるフィールド ID を持っています。私がやりたいことは次のようなものです:
[JsonProperty(ConfigurationManager.AppSettings["JiraResolutionTypeId"])]
public string ResolutionType{ get; set; }
しかし、そのような属性にはコンパイル時の定数しか持てないので、そのように動的に id を設定することはできません。
どうすればこれを回避できますか?