如何在实现接口的存储库中定义公共const字符串

Bun*_*nut 1 c#

我有一个ControllerTodoRepository通过DI实现一个接口的类ITodoRepository.

界面:

public interface ITodoRepository
{
    public bool ValidateTodo(Todo todo);
}
Run Code Online (Sandbox Code Playgroud)

存储库类:

public class TodoRepository : ITodoRepository
{
    public bool ValidateTodo(Todo todo)
    {
        //some validation
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

控制者:

public TodoController : BaseController
{
    private readonly ITodoRepository _todoRepository;
    private const string INVALID_TODO_MESSAGE = "Invalid todo.";

    public TodoController(ITodoRepository todoRepository)
    {
        _todoRepository = todoRepository;
    }

    public IActionResult Post(Todo todo)
    {
        if(!_todoRepository.ValidateTodo(todo))
        {
            return new JsonResult(INVALID_TODO_MESSAGE);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

为了能够INVALID_TODO_MESSAGE在每一个Controller使用TodoRepository我想要移动它的东西中使用TodoRepository,但这似乎是不可能的.其他一些解决方案是创建一个readonly属性ITodoRepository,并在其中实现TodoRepository,但我不确定这是否是最好的方法.

Pat*_*man 5

您可以在界面旁边创建一个帮助程序类:

public static class TodoConstants
{
    public const string INVALID_TODO_MESSAGE = "Invalid todo.";
}
Run Code Online (Sandbox Code Playgroud)

你可以随处使用它TodoConstants.INVALID_TODO_MESSAGE.