我正在实现一个特定的用例。我们有一个要求,在序列化对象中需要有@符号。有没有办法使属性名称中带有@符号? 我的类看起来像这样: public class Test { public string @name } 当我序列化类时,我需要将值作为"@name" : "property的值"。有什么方法可以实现这个吗?我已经尝试过MSDN链接。
在属性名中不能包含文字@。 在你提供的链接中描述标识符语法的 C# 语言规范中,它说标识符以@、_ 或字母字符开头: 一个 Unicode 字符,其类别为 Lu、Ll、Lt、Lm、Lo 或 Nl 表示 Lu、Ll、Lt、Lm、Lo 或 Nl 类别字符的 Unicode 转义序列 @ 符号属于 Unicode 类别 "标点符号、其他" [Po],因此不能出现在属性名称的开头(也不能出现在其余规范中的任何位置)。 前缀 @ 实际上并不是标识符的一部分。
@
开头的元素(C#也不支持...) - D Stanley@
可以用于属性名称的开头,如果您需要一个通常是关键字的名称的属性,例如public int @if { get; set; }
,这将非常有用。但是,@
实际上不会成为名称的一部分,它只是编译器的技巧。如果您通过反射查看属性,则其名称将为“if”。因此,我认为您将不得不手动进行序列化。 - vesan