Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在何处定义接口和实现共享的枚举?_.net - Fatal编程技术网

.net 在何处定义接口和实现共享的枚举?

.net 在何处定义接口和实现共享的枚举?,.net,.net,我有一个包含两个名称空间、接口和服务的项目。每个服务实现其相应的接口。现在我需要方法声明来包含为一个服务声明的枚举。我应该将枚举放在哪个命名空间中?如果我把它放在服务中,我需要在接口中引用服务,这太难看了。在接口中使用pu会很好,但这并不是枚举的真正归属。欢迎提供放置此枚举的位置的建议。我建议两者都引用一个公共名称空间/程序集。您的DTO/实体在哪里定义?这可能是理想的位置。我会有一个由接口和服务项目引用的公共项目,其中包括需要在所有项目中共享的类型/枚举。通常,数据访问接口(存储库)与模型定义

我有一个包含两个名称空间、接口和服务的项目。每个服务实现其相应的接口。现在我需要方法声明来包含为一个服务声明的枚举。我应该将枚举放在哪个命名空间中?如果我把它放在服务中,我需要在接口中引用服务,这太难看了。在接口中使用pu会很好,但这并不是枚举的真正归属。欢迎提供放置此枚举的位置的建议。

我建议两者都引用一个公共名称空间/程序集。您的DTO/实体在哪里定义?这可能是理想的位置。

我会有一个由接口和服务项目引用的公共项目,其中包括需要在所有项目中共享的类型/枚举。

通常,数据访问接口(存储库)与模型定义在同一命名空间中。由于枚举是模型的一部分,因此它也属于模型


也许如果您重新考虑命名名称空间
接口
,而是使用更特定于域的名称,例如
客户端
帐户
等,那么定义接口与之一起使用的类型会更自然

在我们的系统中,我们有一个名为Entities的名称空间/程序集,其中包含所有接口、类型和枚举定义。然后从服务器项目(实现接口)和客户机项目(通过接口调用服务器)引用。
这非常符合我们的要求。

最后,这是最有意义的。我把它放在BusinessObjects程序集中。虽然它不是真正的商业对象,但BO实际上只是DTO,因此它们也不是真正的商业对象:-)