我正在使用 tl 语言编译器来编译在 C#中的https://core.telegram.org/mtproto中描述的 Telegram Api TL 语言的架构
有一个编译器可以将 tl 语言编译为 C# 类https://github.com/everbytes/SharpTL.Compiler
但它可以在这一行编译新的电报模式:
"params":[
{"name":"flags","type":"#"},
{"name":"report_spam","type":"flags.0?true"}]
,"type":"PeerSettings"}
并将其编译为错误的代码:
[TLObject(0x818426CD)]
public partial class PeerSettings : IPeerSettings
{
[TLProperty(1)]
public I# Flags { get; set; }
[TLProperty(2)]
public IFlags0?true ReportSpam { get; set; }
}
在 C# 代码中进行强制转换有什么解决方案吗?
我不知道 C# 中这个“标志:#”的类型是什么
https://core.telegram.org/mtproto/TL-formal中描述的这种类型“#”
user {flags:#} id:flags.0?string first_name:flags.1?string last_name:flags.2?string reserved3:flags.3?False reserved4:flags.4?False = User flags;
将来,flags 字段中的第 3 位和第 4 位可能会在更改 reserved3 和 reserved4 字段的名称和类型后用于传输新字段