我正在尝试按照有关在MSDN上使用工作单元和存储库模式的教程,但我偶然发现了以下内容:
private UnitOfWork unitOfWork = new UnitOfWork();
“这段代码为UnitOfWork类添加了一个类变量。(如果你在这里使用接口,你不会在这里初始化变量;相反,你将实现两个构造函数的模式”
基本上,我需要在我的LogController中调用我的UnitOfWork类,而不是实际使用上面的代码,因为我正在使用接口?这怎么可能?我不确定“两个建设者”是什么意思。
任何建议都会受到启发
答案 0 :(得分:0)
在课堂上定义
Private IUnitOfWork _unitOfWork = null;
你有一个接受IUnitOfWork的构造函数,所以调用者可以传入一个实现:
Public MyClass (IUnitOfWork unitOfWork) {
_unitOfWork = unitOfWork;
}
你有另一个没有,但知道如何去找到要创建的实现。要么它可以使用默认实现,要么它可以转到您编写的某个配置文件以定义要使用的类型等。
在MyClass中你仍然可以调用_unitOfWork.whateverMethod()