mirror of
https://github.com/sochix/TLSharp.git
synced 2025-12-06 08:02:00 +01:00
bug-fix
This commit is contained in:
parent
263685f050
commit
df66bfb6e3
|
|
@ -10,7 +10,7 @@ namespace TeleSharp.TL
|
||||||
public class TLVector<T> : TLObject
|
public class TLVector<T> : TLObject
|
||||||
{
|
{
|
||||||
[TLObject(481674261)]
|
[TLObject(481674261)]
|
||||||
public List<T> lists = new List<T>() ;
|
public List<T> lists = new List<T>();
|
||||||
public override int Constructor
|
public override int Constructor
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|
@ -22,21 +22,21 @@ namespace TeleSharp.TL
|
||||||
public override void DeserializeBody(BinaryReader br)
|
public override void DeserializeBody(BinaryReader br)
|
||||||
{
|
{
|
||||||
int count = br.ReadInt32();
|
int count = br.ReadInt32();
|
||||||
for(int i= 0;i< count;i++)
|
for (var i = 0; i < count; i++)
|
||||||
{
|
{
|
||||||
if (typeof(T) == typeof(int))
|
if (typeof(T) == typeof(int))
|
||||||
{
|
{
|
||||||
lists.Add((T)Convert.ChangeType(br.ReadInt32(),typeof(T)));
|
lists.Add((T)Convert.ChangeType(br.ReadInt32(), typeof(T)));
|
||||||
}
|
}
|
||||||
else if (typeof(T)==typeof(long))
|
else if (typeof(T) == typeof(long))
|
||||||
{
|
{
|
||||||
lists.Add((T)Convert.ChangeType(br.ReadInt64(), typeof(T)));
|
lists.Add((T)Convert.ChangeType(br.ReadInt64(), typeof(T)));
|
||||||
}
|
}
|
||||||
else if (typeof(T) ==typeof(string))
|
else if (typeof(T) == typeof(string))
|
||||||
{
|
{
|
||||||
lists.Add((T)Convert.ChangeType(StringUtil.Deserialize(br), typeof(T)));
|
lists.Add((T)Convert.ChangeType(StringUtil.Deserialize(br), typeof(T)));
|
||||||
}
|
}
|
||||||
else if(typeof(T)==typeof(double))
|
else if (typeof(T) == typeof(double))
|
||||||
{
|
{
|
||||||
lists.Add((T)Convert.ChangeType(br.ReadDouble(), typeof(T)));
|
lists.Add((T)Convert.ChangeType(br.ReadDouble(), typeof(T)));
|
||||||
}
|
}
|
||||||
|
|
@ -53,13 +53,38 @@ namespace TeleSharp.TL
|
||||||
|
|
||||||
public override void SerializeBody(BinaryWriter bw)
|
public override void SerializeBody(BinaryWriter bw)
|
||||||
{
|
{
|
||||||
bw.Write(Constructor);
|
bw.Write(Constructor);
|
||||||
bw.Write(lists.Count());
|
bw.Write(lists.Count());
|
||||||
|
|
||||||
foreach (var item in lists.Cast<TLObject>())
|
foreach (var item in lists)
|
||||||
{
|
{
|
||||||
item.SerializeBody(bw);
|
if (typeof(T) == typeof(int))
|
||||||
}
|
{
|
||||||
|
var res = (int)Convert.ChangeType(item, typeof(int));
|
||||||
|
|
||||||
|
bw.Write(res);
|
||||||
|
}
|
||||||
|
else if (typeof(T) == typeof(long))
|
||||||
|
{
|
||||||
|
var res = (long)Convert.ChangeType(item, typeof(long));
|
||||||
|
bw.Write(res);
|
||||||
|
}
|
||||||
|
else if (typeof(T) == typeof(string))
|
||||||
|
{
|
||||||
|
var res = (string)(Convert.ChangeType(item, typeof(string)));
|
||||||
|
StringUtil.Serialize(res, bw);
|
||||||
|
}
|
||||||
|
else if (typeof(T) == typeof(double))
|
||||||
|
{
|
||||||
|
var res = (double)Convert.ChangeType(item, typeof(double));
|
||||||
|
bw.Write(res);
|
||||||
|
}
|
||||||
|
else if (typeof(T).BaseType == typeof(TLObject))
|
||||||
|
{
|
||||||
|
var res = (TLObject) (Convert.ChangeType(item, typeof (TLObject)));
|
||||||
|
res.SerializeBody(bw);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue