3

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

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

我意识到的一个问题是,它使在 Visual Studio 中输入命名空间更具挑战性。但是,我不认为这是一个主要问题,因为该字符将接近我所使用的单词的末尾,因此该单词将相当独特,并且使用 IntelliSense 这应该不是太大的问题。

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

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

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

在程序集和命名空间中使用变音符号时我遗漏的任何其他注意事项或事情?关于解决我签署程序集的问题有什么想法吗?这种方法一定会失败吗?它真的不值得实施吗,因为它可能会令人困惑或难以使用/晦涩难懂?

这将变成以后要撤消的大量工作,所以我想知道在我深入到这个问题之前我是不是在打自己的脚。

谢谢。

4

2 回答 2

7

我想确定这不是一个坏主意,并且如果有任何关于它的事情会在以后回来咬我。

这是有效的。许多混淆器将命名空间/类型更改为具有 unicode 字符,其中一些甚至不可打印,以使逆向工程更加困难。

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

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

于 2012-05-10T17:54:53.710 回答
2

我想补充一下 vcsjones 的答案,不是每个人都使用 Visual Studio,所以你不应该依赖智能感知来让任何人都更容易做到这一点。

我意识到的一个问题是,它使在 Visual Studio 中输入命名空间更具挑战性。但是,我不认为这是一个主要问题,因为该字符将接近我使用的单词的末尾,因此该单词将相当独特,并且使用 IntelliSense 这应该不是太大的问题

如果我不得不解决这个问题,我会非常恼火使用别人的图书馆。

于 2012-05-10T17:58:52.287 回答