最佳实践:C# 扩展方法命名空间和推广扩展方法

2023-12-25

我知道已经存在一个post https://stackoverflow.com/questions/1051066/naming-conventions-for-extension-method-namespaces-and-sponsor-classes,描述几乎相同,但我认为我的有点不同。

我想知道的是您如何在分配命名空间方面组织扩展方法。目前 - 对于我们框架中的扩展方法 - 我使用以下命名空间模式

  • MyCompany.Web.Utils

在里面我有扩展方法类。这对我来说很好,缺点是我们的软件开发人员无法立即看到扩展程序。考虑一下我有一个 StringExtender 类的情况,它提供了一个非常方便的扩展方法“In” http://blog.js-development.com/2008/12/using-extenders-to-abstract-details-and.html这延伸了String目的。拥有具有上述命名空间的扩展方法,我们的程序员将不会看到扩展方法,除非他们显式包含其命名空间。相反,如果我将扩展方法放在System命名空间,每个人都会立即看到它,但我已经读到这是不好的做法 https://stackoverflow.com/questions/321921/is-it-ok-to-write-my-own-extension-methods-in-the-system-namespace.

所以我的问题是你如何推广你的扩展方法。它们由您的开发人员使用。


我们将它们全部放在自己的命名空间中Company.Common.Extensions。这样,如果您有我们的任何扩展方法,您就拥有了它们。另外,至少在我的店里,我们不必担心我们的开发人员不了解扩展方法。我有相反的担忧,扩展方法过载! :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最佳实践:C# 扩展方法命名空间和推广扩展方法 的相关文章

  • 检测到 NuGet 包的版本冲突

    我正在开发 ASP Net core 2 1 Web 应用程序项目 我的解决方案中有 1 个项目和 3 个其他库 它是高级架构 数据访问层 DAL 业务层 BL 公共层 CL 所以我需要添加引用来连接一些库和项目 我已经添加了CL参考我的项
  • Mono 无法保存用户设置

    我在 Mono Ubuntu 上保存用户设置时遇到问题 这是代码示例 private void Form1 Load object sender EventArgs e string savedText Properties Setting
  • 在 C++ 中分割大文件

    我正在尝试编写一个程序 该程序接受一个大文件 任何类型 并将其分成许多较小的 块 我想我已经有了基本的想法 但由于某种原因我无法创建超过 12 kb 的块大小 我知道谷歌等上有一些解决方案 但我更感兴趣的是了解这个限制的根源是什么 然后实际
  • 如何进行带有偏差的浮点舍入(始终向上或向下舍入)?

    我想以偏置舍入浮动 要么总是向下 要么总是向上 代码中有一个特定的点 我需要这个 程序的其余部分应该像往常一样四舍五入到最接近的值 例如 我想四舍五入到最接近的 1 10 倍数 最接近 7 10 的浮点数约为 0 69999998807 但
  • 在 C++11 中省略返回类型

    我最近发现自己在 C 11 模式下的 gcc 4 5 中使用了以下宏 define RETURN x gt decltype x return x 并编写这样的函数 template
  • ASP .NET MVC,创建类似路由配置的永久链接

    我需要帮助在 MVC 网站中创建类似 URL 路由的永久链接 Slug 已设置为 www xyz com profile slug 代码为 routes MapRoute name Profile url profile slug defa
  • VS30063:您无权访问 https://dev.azure.com

    我正在尝试在 asp net core 2 1 mvc 应用程序中使用以下代码连接 Azure DevOps Uri orgUrl new Uri https dev azure com xxxxx String personalAcces
  • C++11 函数局部静态 const 对象的线程安全初始化

    这个问题已在 C 98 上下文中提出 并在该上下文中得到回答 但没有明确说明有关 C 11 的内容 const some type create const thingy lock my lock some mutex static con
  • 如何用 kevent() 替换 select() 以获得更高的性能?

    来自Kqueue 维基百科页面 http en wikipedia org wiki Kqueue Kqueue 在内核和用户空间之间提供高效的输入和输出事件管道 因此 可以修改事件过滤器以及接收待处理事件 同时每次主事件循环迭代仅使用对
  • 为什么 FTPWebRequest 或 WebRequest 通常不接受 /../ 路径?

    我正在尝试从 ftp Web 服务器自动执行一些上传 下载任务 当我通过客户端甚至通过 Firefox 连接到服务器时 为了访问我的目录 我必须指定如下路径 ftp ftpserver com AB00000 incoming files
  • 范围和临时初始化列表

    我试图将我认为是纯右值的内容传递到范围适配器闭包对象中 除非我将名称绑定到初始值设定项列表并使其成为左值 否则它不会编译 这里发生了什么 include
  • 两组点之间的最佳匹配

    I ve got two lists of points let s call them L1 P1 x1 y1 Pn xn yn and L2 P 1 x 1 y 1 P n x n y n 我的任务是找到它们点之间的最佳匹配 以最小化它
  • C# 创建数组的数组

    我正在尝试创建一个将使用重复数据的数组数组 如下所示 int list1 new int 4 1 2 3 4 int list2 new int 4 5 6 7 8 int list3 new int 4 1 3 2 1 int list4
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • 是否有一个 C++ 库可以从 PDF 文件中提取文本,例如 PDFBox for Java? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 去年 我使用 PDFBox 在 Java 中创建了一个应用程序来获取某些 PDF 文件中的原始文本 现在
  • 内核开发和 C++ [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 从我know https stackoverflow com questions 580292 what languages are windo
  • 为什么我使用google'smtp'无法发送电子邮件?

    我有以下程序使用 smtp gmail com 587 发送电子邮件 namespace TestMailServer class Program static void Main string args MailMessage mail
  • 如何在 GCC 5 中处理双 ABI?

    我尝试了解如何克服 GCC 5 中引入的双重 ABI 的问题 但是 我没能做到 这是一个重现错误的非常简单的示例 我使用的GCC版本是5 2 如您所见 我的主要函数 在 main cpp 文件中 非常简单 main cpp include
  • 过度使用委托对性能来说是一个坏主意吗? [复制]

    这个问题在这里已经有答案了 考虑以下代码 if IsDebuggingEnabled instance Log GetDetailedDebugInfo GetDetailedDebugInfo 可能是一个昂贵的方法 因此我们只想在调试模式
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C

随机推荐

  • 使用 Jackson 反序列化包装列表

    我有一个像这样的 JSON 对象 geonames countryId 2017370 adminCode1 73 countryId 2027370 adminCode1 71 我怎样才能反序列化这个对象DIRECTLY to List
  • 如何在 Spring 应用程序上下文中将 Class 设置为属性值?

    有没有办法配置 spring 应用程序上下文 以便它将使用 Class 类型的值初始化 setter 我需要初始化该结构 Map
  • 将 RTSP 流转换为虚拟网络摄像头

    我正在尝试使用来自 IP 摄像机的 RTSP 流作为 Windows 上各种应用程序 例如 Skype Zoom Microsoft Teams 等 的视频输入源 到目前为止我找到的唯一解决方案是使用 webcam 7 http www w
  • std::weak_ptr:锁或shared_ptr构造函数?

    似乎有两种方法可以暂时获取 a 所指向的资源的所有权weak ptr Use lock 通过weak ptr to a shared ptr构造函数 这两者都会产生一个shared ptr 锁返回一个nullptr在这种情况下weak pt
  • 动态设置线性布局背景

    我想通过以下方式动态设置线性布局背景 通过 XML 解析从 Web url 获取图像 然后将该图像存储到 SD 卡中 现在图像已保存到 SD 卡中 将该图像设置为应用程序中的线性布局背景 现在我陷入了第三步 有人可以帮忙吗 用这个 Bitm
  • 在Thread中使用EnterCriticalSection更新VCL标签

    我是线程新手 我正在使用一个第三方库 该库使用线程 有时会调用我提供的过程 当线程调用我的过程时 如何更新 TLabel Caption 如果我在其他地方调用了InitializeCriticalSection 它是否像 EnterCrit
  • 光源设置不正确

    我有这段代码 但灯光似乎无法正常工作 当我渲染对象时它很暗 然后当我旋转它时 光源似乎也旋转了 我不知道问题出在哪里 我尝试修改灯光模型但仍然不起作用 这是程序 while glfwWindowShouldClose window Rend
  • Javascript递归设置超时

    我刚刚开始研究 javascript 所以希望这会是简单的事情 我想制作自动播放的图像幻灯片 这非常简单 并且有一些关于它的教程 但由于某种原因我无法让它工作 这就是我所拥有的 var image1 new Image var image2
  • WPF列表框滚动到底部

    我使用 ObservableCollection 作为 listBox 组件的 ItemSource 但控件的行为对我来说并不合适 我已经向下滚动到这件事在我的收藏中第一次出现 但不是最后一次 示例列表为 1 1 2 3 4 5 6 7 8
  • XSLT PI 和样式表参数

    给定一个需要参数的 XSLT 1 x 样式表 是否有任何方法可以将其与指定参数值的 XML 文档关联起来 我阅读了样式表 PI 的 W3C 规范文档 并得到了答案是 否 的印象 但当我读完时 我遇到了急性 BNF 中毒的情况 因此可能错过了
  • 行主与列主矩阵乘法

    我目前正在开发一个 C 程序 尝试计算矩阵乘法 我通过循环第二个矩阵的每一列来完成此任务 如下所示 我已将大小设置为 1000 for i 0 i
  • 如何找出坐标之间的距离?

    我想让它显示两个 CLLocation 坐标之间的距离 有没有办法在没有复杂数学公式的情况下做到这一点 如果没有 你会如何用公式来做呢 CLLocation 有一个 distanceFromLocation 方法 因此给定两个 CLLoca
  • Java HTML->PDF 解决方案?

    我目前正在用 Java 构建一个基于 PDF 的报告 我已经研究过 iText 和 BIRT 但似乎需要付出很大的努力来学习他们的 API 我试图找到一个解决方案 让我可以在 HTMl 中生成报告 我已经知道的东西 并将其输出为 PDF 谁
  • AngularJS 和解析正文

    我正在尝试使用 AngularJS 创建一个网站 由用户生成的内容驱动 可以使用自定义标签 例如 js code js code 以不同方式显示这些部分内的文本 API 向我发送一个包含标签的正文文本字符串 以便在客户端上进行解析 如果我使
  • 在symfony2中实现日志系统

    我想将一个日志文件集成到我用 symfony2 制作的网站中 我的意思是我想保存用户的每个操作 点击按钮 将请求保存到数据库 那可能吗 有人对此有什么想法吗 登录 Symfony 2 是的 文档中确实描述了这一点 Symfony 2 Coo
  • 移动应用程序中的幽灵点击

    有很多关于幽灵点击的材料 帖子 我正在努力更好地理解它 所以我的理解是 幽灵点击的原因是click触摸事件后约 300 毫秒调度事件 jQuery Mobile 建议 http jquerymobile com test docs api
  • JQuery 文本编辑器粘贴而不带格式

    我在我的网站上使用插件 JQuery 文本编辑器 有时 当用户将预先格式化的 HTML 文本从另一个网站复制并粘贴到插件的文本框中时 它会错误地呈现并中断部分字符串 从数据库检索后可以看到损坏的文本 如果您手动编写此文本 或从框中复制并重新
  • 无法禁用 UITextView 中 UIMenuController 中的默认 UIMenuItems

    我正在尝试配置 U IMenuController 的菜单项以获得类似于 Medium 的 iOS 功能的功能 有各种线程致力于此特定任务 但是尽管有数以万计的视图和不同的结果 包括它不适用于足够多的人 似乎没有一个始终有效的解决方案对于
  • 从 XJC 中导入的架构解析类型定义失败

    我使用 JAXB 获得了此 API 以便通过命名引用方便地使用由 XJC XML 到 Java 编译器从 XML 模式生成的对象模型 它通过各种背景魔法和反射抽象了 JAXB 上下文的创建和查找 ObjectFactory 方法 其基本要点
  • 最佳实践:C# 扩展方法命名空间和推广扩展方法

    我知道已经存在一个post https stackoverflow com questions 1051066 naming conventions for extension method namespaces and sponsor c