https://core.telegram.org/mtprotoで説明されている Telegram Api TL 言語のスキーマを C#でコンパイルするために、tl-language コンパイラを使用しています。
tl-language を 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# のこの「flags:#」の型がわかりません
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;
将来的には、フラグ フィールドのビット 3 と 4 を使用して、reserved3 フィールドと reserved4 フィールドの名前とタイプを変更した後、新しいフィールドを送信することができます。