編集:ほとんどの場合、正常に動作し、エラーは例外的です。
このメソッドが呼び出された行で、エラー レポートには KeyNotFoundException がスローされたことが示されています。
public Task<bool> UpdateStatusAsync(Some object, Status status)
{
var somerequest = new Somerequest
{
...
Status = MapDomainStatusToAclStatus(status.Type),
...
};
.............
}
マッピング関数は次のとおりです。
private string MapDomainStatusToAclStatus(DomainStatus domainStatus)
{
if (DictionaryDomainACLStatus.ContainsKey(domainStatus))
{
return DictionaryDomainACLStatus[domainStatus];
}
// Some refactor todo comment.
switch (domainStatus)
{
case DomainStatus.Aborted:
return "Some string";
}
Log.Info($"[MapDomainStatusToAclStatus] DomainStatus={domainStatus} cant be mapped to ACL status");
return String.Empty;
}
それは可能ですか?
編集:
競合状態の可能性についていくつかの返信があったので、辞書が次のように宣言されていることを追加したいと思います。
public static readonly Dictionary<DomainStatus, string> { values }
Edit2:私の辞書宣言:
public static readonly Dictionary<DomainStatus, string> DictionaryDomainACLStatus= new Dictionary<DomainStatus, string>
{
{DomainStatus.Approved, "TEXT" },
{DomainStatus.Declined, "TEXT2" }
};
後でコード内で create update delete 操作が発生することはありません。