gpt4 book ai didi

c# - 如何在新的 cs 文件中覆盖 VS2010 的自动文件夹-> 命名空间映射

转载 作者:可可西里 更新时间:2023-11-01 09:16:17 24 4
gpt4 key购买 nike

项目通常被分解成文件夹,这些文件夹通常会映射到代码命名空间。但是,在我的许多核心项目中,我有一些类已合并到现有的命名空间中 - 例如,我有一个 MVC 引用库,可以将其他类型添加到 System.Web.MvcSystem .ComponentModel.DataAnnotations,例如。

在其他项目中,我可能有一套接口(interface)和一套这些接口(interface)的默认实现;所以我可能会将代码文件分成两个单独的文件夹(例如“对象”和“接口(interface)”),但我不想有 ObjectsInterfaces 子命名空间。

同样,我经常为其他库中的类型编写扩展方法——例如System.String,我将其合并到 System 命名空间中,因此只要您引用程序集,它们就已经“存在”了。

因此给定一个这样的项目结构(作为对第一个答案的回应,该项目旨在生成一个包含所有命名空间的程序集;并且可能是一个可能已签名的 dll):

Our.Core.Library
|->System
| |->StringExtensions.cs
|->System.Web.Mvc
| |->AnotherModelBinder.cs
|->OurCoreClass.cs

在上面,我希望添加到根目录的新文件位于命名空间 Our.Core.Library 中,但我希望将新文件添加到 System 和 System.Web.Mvc 文件夹中分别在 SystemSystem.Web.Mvc 中。但是 VS 会给他们一个默认的命名空间 Our.Core.Library.System

这是一个小问题,但我希望能够覆盖特定代码文件夹的默认命名空间,以便我可以控制它。任何想法如何实现这一目标?我已经为该项目尝试了一个空的默认命名空间,这在逻辑上可能使其适用于子文件夹,但显然不适用于根目录;但是,VS 属性页面不接受空命名空间。

理想情况下,这将是一个我可以在整个开发团队中轻松复制的解决方案,使其他开发人员能够添加代码文件,同时遵守架构师/规划阶段设定的命名空间结构。

最佳答案

每个 C# 项目设置在应用程序选项卡中都有一个 Default namespace 选项,您可以将其更改为任何其他值,该值将在您向项目添加更多文件时生效。每个项目只允许一个设置

enter image description here

您可以将您的项目分成多个项目,并为不同的项目设置不同的默认值

关于c# - 如何在新的 cs 文件中覆盖 VS2010 的自动文件夹-> 命名空间映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8895166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com