我正在考虑在自定义框架的命名空间中使用带有变音符号(例如 ō)的字符。这个想法是作为区分产品的一种方式提出的,但我想确定这不是一个坏主意,如果有任何关于它的内容稍后会回来咬我。我没有在搜索中看到使用特殊字符的 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/