我是一名 Visual C++.net 程序员,大约一年前转换为 C#,我真的很怀念__FILE__
, 和__LINE__
. 为了替换__FILE__
,我编写了一个很好的函数来返回 class.method,这很棒,但是没有合适的替代方法__LINE__
(如果我错了,请纠正我!)。
我了解语言差异和技术限制,以及推理,以及所有这些东西。
我要问的是:
编写一些 Visual Studio 扩展(我们所有的开发人员都会安装)是否可行,甚至可能,这将允许我们定义某种类型的令牌(~~LINE~~ 或其他东西),我们可以拥有当编译成可执行文件时,文本替换或将该符号切换到实际的 VS 行号?
我的扩展编程知识很少,我不知道分机。系统限制。
编辑澄清:
在 C++ 中__FILE__
,一旦编译,将返回您在其中编写代码的当前文件,以及__LINE__
您的当前行。这很重要,因为我们所有的日志记录系统(10 多年前)都需要一个 char* 用于文件,一个 int 用于我们正在记录的行。
C# 不能像 C++ 那样产生这两个“令牌”。
举个例子:
LoggingService.LogException(e, "file.cs", 1234);
是我想要编译到我的可执行文件中的内容,并且
LoggingService.LogException(e, ~~MYFILE~~, ~~MYLINE~~);
是我希望我的代码看起来的样子,并保存在磁盘上。我有一个合适的替代方法来获取文件,但我没有一个来获取文件。
编辑2:
这些我们的版本构建,没有调试符号。为了适应这个修复,我们的产品安装必须大几百兆,这是不可能的。