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

时间:2016-05-22 12:35:38

标签: c# ninject

我上课了:

IMessageRepository messageRepository;
IMessageService messageService;

我应该将它们都放在类的构造函数中,并且因为使用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);
    }

1 个答案:

答案 0 :(得分:2)

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

因为将来您可能会有另一种IMessageRepository的实现。

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

希望它会有所帮助。