2

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 フィールドの名前とタイプを変更した後、新しいフィールドを送信することができます。

4

2 に答える 2