在接口(API)项目中引用枚举?

时间:2018-08-16 19:58:08

标签: c# .net design-patterns software-design

一段时间以来,我一直在一个解决方案中从事两个项目。 AppNameAppName.API。 API存储了我的所有接口,而AppName存储了与解决方案相关的所有其他信息。

我已经进入项目的某个阶段,不确定在这里可以做什么。我需要在AppName的类中引用AppName的枚举,但该类具有AppName.API的接口

这意味着AppName.API必须有权访问该枚举。如果我无法在AppName中引用AppName.API,该怎么办?

有人建议使用AppName.Common,但是它也已经引用了AppName.API,所以我不能在API项目中引用它。我真的必须制作一个AppName.Enums

3 个答案:

答案 0 :(得分:1)

将其放入AppName.API。由于您需要AppName.API项目和AppName都可以看到它,因此将其放在此处。老实说,有一百种方法可以给这只猫剥皮。

创建一个名为“ AppName.Enum”的新项目,并将其全部放入其中,然后在AppName和AppName.API中都引用AppName.Enum。

答案 1 :(得分:1)

我通常使用的结构是AppName.Model,您可以在其中放置所有模型,枚举等。纯类,仅此而已。

然后,您可以从所有其他地方引用此库。这意味着您将可以同时从AppName.APIAppNameAppName.Common引用它。

答案 2 :(得分:1)

正如M Moore所说,“有100万种方法可以给这只猫剥皮”。

方法的方向主要取决于项目的目标,所需的资源和项目的未来。

这里有3种方法:

i。)松散耦合项目层-在复杂的业务模型/企业应用程序中使用的分层

AppName.Domain.Model
AppName.Domain.Enum
AppName.Domain.Constant
AppName.Data.Repository
AppName.Data.Service
AppName.Business.Logic
AppName.Business.Helper
AppName.Web
AppName.Api
AppName.Mobile.Android
AppName.Mobile.iOS

ii。)常见项目分层-许多业务应用程序中使用的分层

AppName.Domain
AppName.Data
AppName.Business
AppName.Shared

iii。)整体式独立项目-可以通过文件夹结构应用分层

AppName