我应该使用 ninject 来初始化存储库服务吗?

Should i use ninject to initialize service with repository?

我有 class 其中有 :

IMessageRepository messageRepository;
IMessageService messageService;

我是否应该将它们都放在 class 的构造函数中并因此使用 ninject 来初始化它们?

public MessageController(IMessageRepository messageRepository, IMessageService messageService)
    {
        this.messageRepository = messageRepository;
        this.messageService = messageService;
    }

或者我应该只从 ninject 获取 messageRepository 并用它初始化我的 messageService 吗? (它在构造函数中使用 IMessageRepository)

public MessageController(IMessageRepository messageRepository)
    {
        this.messageRepository = messageRepository;
        this.messageService = new MessageService(messageRepository);
    }

我更愿意将它们都放在构造函数参数中。

因为,以后你可能会有另一种实现IMessageRepository

此外,您可以更好地控制 类 之外的依赖项(例如,您可能需要在 ControllerService 中使用不同的存储库)。

希望对您有所帮助。