我有一个包含3个类库项目的解决方案。我正在使用依赖注入来创建这些项目之间的松耦合:
因此,最终,我的NuGet包只会暴露“服务”中的函数,但服务函数使用存储库方法和域对象。所以所有这些都应该包含在我的包中。
这是我困惑的地方:
- 如何确保我的NuGet包中包含所有必需的部分,即域对象和存储库方法。域对象是公开的,但存储库方法仅由服务功能使用,因此最终它们对用户不可见。然而,我的服务功能需要它们,所以它们必须包含在包中。
- 我也很困惑将3个项目捆绑在一起,这通常是在顶层完成的。换句话说,安装NuGet包是不够的,因为需要解析依赖关系。例如,如果我在一个新的ASP.NET项目中添加我的NuGet包,我必须在我的Startup.cs中解决这些依赖关系,这看起来有点尴尬。不知道如何处理那部分。
- 每个项目都有自己的依赖项。例如,Repository项目使用Azure Table Storage,服务项目使用NewtonSoft.Json。我想确保当用户在新项目中安装我的NuGet包时,将涵盖所有依赖项。
醇>
如何创建这个NuGet包?