C#WPF"私有"匿名类型成员

Wah*_*hyu 0 c# wpf

using (var streamWriter = new StreamWriter(SomeRequest.GetRequestStream()))
{
    string json = JsonConvert.SerializeObject(new
    {
        Type_member1 = "StacOverFlow",
        Type_member2 = sometext,
        Type_member3 = 0,
        private = true
    });
    streamWriter.Write(json);
}
Run Code Online (Sandbox Code Playgroud)

如您所见,有一个名为"private"的Type成员.当然,当我键入它时,会弹出一条消息并告诉我:

"无效的表达术语'私人'"

将"private"置于引号内将返回此错误:

"无效的匿名类型成员声明者.bla bla bla ..."

有办法解决这个问题吗?

use*_*740 6

这可以通过使用语法来解决:

@private = true,
Run Code Online (Sandbox Code Playgroud)

注意使用@private(其中@改变了编译器解释源代码的方式) ; 并将其更改;为a ,以避免其他语法错误.

关键词[即.private]是预定义的保留标识符,对编译器具有特殊含义.它们不能用作程序中的标识符,除非它们包含@作为前缀.例如,@if[即.@private]是一个有效的标识符,但是if[即.private]不是因为if是关键字.

或者,创建一个非匿名类型(具有更好的代码友好成员名称)并应用[JsonProperty][DataMember]属性将序列化名称更改为"私有".