c# - 命名空间中的特殊字符

标签 c# .net visual-studio namespaces .net-assembly

我正在考虑在自定义框架的命名空间中使用带有变音符号(例如 ō)的字符。这个想法是作为区分产品的一种方式提出的,但我想确定这不是一个坏主意,如果有任何关于它的内容稍后会回来咬我。我没有在搜索中看到使用特殊字符的 namespace 的其他示例,也没有看到关于此主题的任何类似讨论,这让我暂停了继续沿着这条路走下去。

我最初也考虑用变音符号命名程序集,但我遇到的第一个阻碍是尝试对程序集进行数字签名。我无法让特殊字符出现在命令提示符中,所以我收到了 No valid input 错误。也许还有另一种解决方法?

我意识到的一个问题是,它使在 Visual Studio 中输入 namespace 变得更具挑战性。但是,我不认为这是一个主要问题,因为该字符将接近我使用的单词的末尾,该单词将非常独特,并且对于 IntelliSense,这应该不是什么大问题。

考虑以下示例,包含在程序集 Macron.dll 中:

namespace Macrōn.Library
{
    public class MyLibrary
    {
        public string MyProperty { get; set; }
    }
}

生成和使用此 Macron.dll 似乎没有问题,区分此示例 Macrōn.Library 命名空间也没有问题。文件、文件夹、项目和解决方案名称 Macrōn 似乎没有引起任何问题,而且一切似乎都与源代码管理相吻合,没有任何问题。

在程序集和命名空间中使用变音标记时,我还遗漏了任何其他注意事项或事项吗?关于解决我在大会上签名的问题有什么想法吗?这种方法一定会失败吗?它真的不值得实现吗,因为它可能会造成混淆或难以使用/晦涩难懂?

这会变成很多以后要撤消的工作,所以我想知道在我深入研究之前我是否搬起石头砸自己的脚。

谢谢。

最佳答案

I want to to be sure this isn't a bad idea, and if there is anything about it that will come back to bite me later.

有效。许多混淆器将 namespace /类型更改为具有 unicode 字符,其中一些甚至不可打印,从而使逆向工程更加困难。

话虽如此,如果这是其他人会使用的公共(public)框架,我会劝阻它。这将迫使任何使用命名空间的人将他们的源文件保存为 Unicode/UTF8,如果他们不这样做,那么 ō 字符可能会被替换为 ?。然后它将不再编译。

Alexei 也发表了非常好的评论。除了复制和粘贴之外,我不知道如何输入 ō 字符。那肯定会让我慢下来。

关于c# - 命名空间中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10539564/

相关文章:

c# - 无法在同一解决方案中为 WCF 项目的客户端类添加服务引用

visual-studio - 自动命名空间导入

c# - 为什么 ApiController 在方法上需要显式的 Http 动词?

c# - 字符串中任何位置都不允许使用单词和字符的正则表达式,例如 ({}[]^)

c# - MEF:使用和从组合零件导出来满足导出零件的要求

c# - C# 中的内存问题,如果 .Net 应用程序调用 dll,则可以正常使用,但如果从旧版应用程序调用 dll,则内存问题为天文数字

c# - 多线程环境下 SendOrPostCallback 和 Action 的区别?

.net - configSections 的目的是什么?

.net - 是否有任何基于 .NET 的中央身份验证服务实现?

visual-studio - 无法调试 Visual Studio 插件