1

我的意思是,如果我们从某个服务获得错误代码 300,并且需要将其映射到我们自己的内部错误代码(例如 450),那么最好的方法是什么。

当前系统使用常量来跟踪内部错误:

public const string ERROR_SOME = "450"; public const string ERROR_ANOTHER = "460";...

所以我想为外部错误设置另一组常量,然后具有映射两者的功能:

public const string EXT_ERROR_SOME = "300";
public const string EXT_ERROR_ANOTHER = "800";
...
public string MapError(string externalError)
{
    if(externalError == EXT_ERROR_SOME) // can be a switch statement
         return ERROR_SOME;
    else if (externalError == EXT_ERROR_ANOTHER)
         return ERROR_ANOTHER;
    ...
}

问题是:“有没有更好的方法”?

4

2 回答 2

1

您可以使用Dictionary<string, string>

private readonly var errorMap = new Dictionary<string, string>() {
    {EXT_ERROR_SOME, ERROR_SOME},
    ⋮
};

public string MapError(string externalError)
{
    return errorMap[externalError];
}
于 2013-05-15T04:05:49.637 回答
0

不是 C# 问题,而仅仅是架构问题。我不会把它放在任何语言的任何代码中,而是将整个地图完全外部化(只要它不仅仅是上面的这一对)。让它有点“完整”

"external code : internal code : msg ID"

下一个

"language : msg ID : user friendly hint .... "

等等。有几个库可以用于各种目的,即使在 C# 中也是如此。

于 2013-05-15T04:02:54.830 回答