如何在c#类中登录属性名

如何在c#类中登录属性名,c#,public,C#,Public,我正在实现一个特定的用例。我们需要在序列化对象中有@sign。有没有办法让@登录属性名 我的班级看起来像 public class Test { public string @name } 当我序列化类时,我需要值为“@name”:“属性值”有什么方法可以实现这一点吗 我已经尝试了您不能在属性名称中包含文字@ 在您列出的描述有效标识符语法的链接后面的C语言规范中,它指出标识符以@开头,以开头,或以开头 字母字符: Lu、Ll、Lt、Lm、Lo或Nl类的Unicode字符 表示Lu、

我正在实现一个特定的用例。我们需要在序列化对象中有@sign。有没有办法让@登录属性名

我的班级看起来像

public class Test
{

    public string @name
}
当我序列化类时,我需要值为“@name”:“属性值”有什么方法可以实现这一点吗


我已经尝试了

您不能在属性名称中包含文字
@

在您列出的描述有效标识符语法的链接后面的C语言规范中,它指出标识符以
@
开头,以
开头,或以
开头

字母字符

  • Lu、Ll、Lt、Lm、Lo或Nl类的Unicode字符
  • 表示Lu、Ll、Lt、Lm、Lo或Nl类字符的unicode转义序列
@
符号位于Unicode类别“标点符号,其他”[Po]中,因此不能位于属性名称的开头(根据规范的其余部分,也不能位于属性名称的任何位置)


前缀
@
实际上不是标识符的一部分。

您要序列化到什么?XML?JSON?你想把这个类序列化成什么?德斯坦利的厄运。你欠我一杯可乐!我认为XML或JSON都不支持以
@
开头的元素(C#也不支持…),在C#中,
@
可以用在属性名称的开头,如果您需要一个名称通常是关键字的属性,例如
public int@if{get;set;}
,这是很有用的。然而,
@
实际上并不是名称的一部分,它只是一个编译器技巧。如果通过反射查看属性,其名称将为“If”。因此,我认为您必须手动执行序列化。