背景
我正在为古老的网络系统开发一个扩展代码。
系统要求所有.cs
文件都是C#6.0语言版本。所述古代系统在运行时读取.cs
文件。因此,我唯一能做的就是按原样准备"原始".cs
文件,而不是编译后的.dll
文件。
问题
有没有一种方法可以用最新版本编写.cs
,然后简单地将其"翻译"为旧版本?
请注意,TargetFramework
选项不起作用,因为我没有进行任何编译。我只是想把.cs
转换成另一个.cs
。
示例
namespace Test;
// code...
这个文件范围的名称空间在现代C#10.0中可以工作,但如果我试图将其输入到较旧的系统中,它就会失败。由于C#6.0中不存在此功能。
所以,如果我可以的话会更好:
////////// source.cs
namespace Test;
public class Class {}
//////////
// some magic happens...
////////// dist.cs
namespace Test {
public class Class {}
}
//////////
使用您选择的版本编译代码,然后使用ILSpy反编译,同时将语言版本设置为C#6.0。