我的应用中有三个图层:Repositories -> Services -> Web
。存储库和服务在VS 2015中创建为“类库(包)”(此应用程序也应在OSX / Linux上运行,这就是我必须创建这种库的原因)。我在Services to Repository中添加了依赖项。这是服务中project.json的一部分:
"dependencies": {
"App.Repositories": ""
},
我在Web中添加了对服务的依赖。这是Web(MVC6)中project.json的一部分:
"dependencies": {
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.FileProviderExtensions" : "1.0.0-rc1-final",
"Microsoft.Extensions.Logging": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Debug" : "1.0.0-rc1-final",
"App.Services": ""
},
多亏了这一点,我可以在服务中编写类似的代码:
using App.Repositories;
namespace App.Services
{
public class Service
{
public Service()
{
var repository = new Repository();
repository.DoSomething();
}
}
}
这没关系,因为项目之间存在“引用”。但是,我也可以使用放在Web中的存储库中的类,如下所示:
using Microsoft.AspNet.Mvc;
using App.Repositories;
namespace App.Web.Controllers
{
[Route("api/[controller]")]
public class ValuesController : Controller
{
public ValuesController()
{
var repository = new Repository();
repository.DoSomething();
}
}
}
问题: