我想创建一个环绕在类似的方式对存储库工作类的单元此.
我遇到的问题是尝试通过用IRepository接口替换示例中的通用存储库来实现依赖注入.在链接文章中的uow中,他们使用getter来检查存储库是否被实例化,如果不是,则实例化它.
public GenericRepository<Department> DepartmentRepository
{
get
{
if (this.departmentRepository == null)
{
this.departmentRepository = new GenericRepository<Department>(context);
}
return departmentRepository;
}
}
Run Code Online (Sandbox Code Playgroud)
这是强烈耦合的.
我可以通过两种方式看到这一点.
1的问题是,如果我注入所有存储库,我必须实例化每个存储库,即使我不在特定的工作单元实例中使用它们.因此招致了这样做的开销.我想象使用一个数据库范围的工作单元,这会导致很多不必要的实例化和一个巨大的构造函数.
2的问题是很容易忘记设置和结束空引用异常.
在这种情况下是否有任何最佳实践?还有其他我错过的选择吗?
我刚刚进入依赖注入,并完成了我可以找到的关于该主题的所有研究,但我可能会遗漏一些关键.
我有一个套接字应用程序,我试图在端口443(https)上进行监听.如果我改变端口(例如8080)我没有问题.
显示的错误是
error raised: Error: listen EACCES
Run Code Online (Sandbox Code Playgroud)
我的应用源代码是:
var fs = require('fs');
// create the https server and listen on port
var options = {
ca: fs.readFileSync('ca.pem'),
cert: fs.readFileSync('cert.pem'),
key: fs.readFileSync('server.key')
};
var server = require('https').createServer(options);
var portNo = 443;
var app = server.listen(portNo, function() {
console.log((new Date()) + " Server is listening on port " + portNo);
});
// create the socket server on the port
var io = require('socket.io').listen(app);
// This callback function is called every time a …Run Code Online (Sandbox Code Playgroud)