タイトルの件、エラーコードをExceptionをラップした型に持たせて、
ロジックでエラーが発生した場合に、ロジック利用アプリ側にそのエラーコードにより
処理を分ける仕組みを検討しております。

この場合、エラーコードを利用アプリでハードコーディングしないように
管理することを検討しております。以下の方法を検討しておりますが
ノウハウ等ありましたらご教示頂きたく、よろしくお願いいたします。

1.Enum型でエラーコード数分定義する。エラーコード自体はカスタムタグに持たせる。

public enum ErrorType
{
    [ErrorEnum("ERROR-0001")]
    Error1,
    [ErrorEnum("ERROR-0002")]
    Error2
}

  エラーコードの利用コード
  

※GetCode(Enum)はEnum型からコードを返すメソッドとする。
if(CustomException.ErrorCode == GetCode(ErrorType.Error1))
{
    //エラーコードに沿ったエラーメッセージを表示する。
}
else
if(CustomException.ErrorCode == GetCode(ErrorType.Error2))
{
   //エラーコードに沿ったエラーメッセージを表示する。
}

2.定数クラスを作成して、public const stringでエラーコードを定義する。

public class ErrorConst
{
    public const string Error1Code = "ERROR-0001";
    public const string Error2Code = "ERROR-0002";
}

エラーコードの利用コード

if(CustomException.ErrorCode == ErrorConst.Error1Code )
{
    //エラーコードに沿ったエラーメッセージを表示する。
}
else
if(CustomException.ErrorCode == ErrorConst.Error2Code )
{
    //エラーコードに沿ったエラーメッセージを表示する。
}

3.その他何か良い方法や上記方法の注意点等ありましたらご教示ください。