本文整理汇总了C#中System.IO.BinaryReader.ReadSerializableArray方法的典型用法代码示例。如果您正苦于以下问题:C# BinaryReader.ReadSerializableArray方法的具体用法?C# BinaryReader.ReadSerializableArray怎么用?C# BinaryReader.ReadSerializableArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.IO.BinaryReader
的用法示例。
在下文中一共展示了BinaryReader.ReadSerializableArray方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Deserialize
public override void Deserialize(BinaryReader reader)
{
Version = reader.ReadUInt32();
Inputs = reader.ReadSerializableArray<TransactionInput>();
for (int i = 1; i < Inputs.Length; i++)
for (int j = 0; j < i; j++)
if (Inputs[i].PrevHash == Inputs[j].PrevHash && Inputs[i].PrevIndex == Inputs[j].PrevIndex)
throw new FormatException();
Outputs = reader.ReadSerializableArray<TransactionOutput>();
LockTime = reader.ReadUInt32();
}
示例2: DeserializeExclusiveData
protected override void DeserializeExclusiveData(BinaryReader reader)
{
this.Enrollments = reader.ReadSerializableArray<UInt256>();
if (Enrollments.Length == 0 || Enrollments.Length > 1024)
throw new FormatException();
if (Enrollments.Length != Enrollments.Distinct().Count())
throw new FormatException();
}
示例3: using
void ISignable.FromUnsignedArray(byte[] value)
{
using (MemoryStream ms = new MemoryStream(value, false))
using (BinaryReader reader = new BinaryReader(ms))
{
this.AssetId = reader.ReadSerializable<UInt256>();
this.ValueAssetId = reader.ReadSerializable<UInt256>();
this.Agent = reader.ReadSerializable<UInt160>();
this.Amount = reader.ReadSerializable<Fixed8>();
this.Price = reader.ReadSerializable<Fixed8>();
this.Client = reader.ReadSerializable<UInt160>();
this.Inputs = reader.ReadSerializableArray<TransactionInput>();
}
}
示例4: DeserializeUnsignedInternal
private void DeserializeUnsignedInternal(BinaryReader reader, UInt256 asset_id, UInt256 value_asset_id, UInt160 agent)
{
AssetId = asset_id;
ValueAssetId = value_asset_id;
Agent = agent;
Amount = reader.ReadSerializable<Fixed8>();
if (Amount == Fixed8.Zero) throw new FormatException();
if (Amount.GetData() % 10000 != 0) throw new FormatException();
Price = reader.ReadSerializable<Fixed8>();
if (Price <= Fixed8.Zero) throw new FormatException();
if (Price.GetData() % 10000 != 0) throw new FormatException();
Client = reader.ReadSerializable<UInt160>();
Inputs = reader.ReadSerializableArray<TransactionInput>();
if (Inputs.Distinct().Count() != Inputs.Length)
throw new FormatException();
}
示例5:
void ISignable.DeserializeUnsigned(BinaryReader reader)
{
PrevHash = reader.ReadSerializable<UInt256>();
Miner = ECPoint.DeserializeFrom(reader, ECCurve.Secp256r1);
IV = reader.ReadBytes(16);
NoncePieces.Clear();
int count = (int)reader.ReadVarInt();
for (int i = 0; i < count; i++)
{
ECPoint key = ECPoint.DeserializeFrom(reader, ECCurve.Secp256r1);
if (key == Miner) throw new FormatException();
byte[] value = reader.ReadBytes((int)reader.ReadVarInt());
NoncePieces.Add(key, value);
}
NonceHash = reader.ReadSerializable<UInt256>();
TransactionHashes = reader.ReadSerializableArray<UInt256>();
}
示例6: Deserialize
public override void Deserialize(BinaryReader reader)
{
this.PrevHash = reader.ReadSerializable<UInt256>();
this.Miner = Secp256r1Point.DeserializeFrom(reader);
this.NoncePieces.Clear();
int count = (int)reader.ReadVarInt();
for (int i = 0; i < count; i++)
{
Secp256r1Point key = Secp256r1Point.DeserializeFrom(reader);
if (key == Miner) throw new FormatException();
byte[] value = reader.ReadBytes((int)reader.ReadVarInt());
NoncePieces.Add(key, value);
}
this.NonceHash = reader.ReadSerializable<UInt256>();
this.TransactionHashes = reader.ReadSerializableArray<UInt256>();
this.Script = reader.ReadBytes((int)reader.ReadVarInt());
}
示例7: DeserializeWithoutType
private void DeserializeWithoutType(BinaryReader reader)
{
DeserializeExclusiveData(reader);
this.Inputs = reader.ReadSerializableArray<TransactionInput>();
if (GetAllInputs().Distinct().Count() != GetAllInputs().Count())
throw new FormatException();
this.Outputs = reader.ReadSerializableArray<TransactionOutput>();
if (Outputs.Any(p => p.Value == Fixed8.Zero))
throw new FormatException();
this.Scripts = reader.ReadBytesArray();
}
示例8: using
void ISignable.FromUnsignedArray(byte[] value)
{
using (MemoryStream ms = new MemoryStream(value, false))
using (BinaryReader reader = new BinaryReader(ms))
{
if ((TransactionType)reader.ReadByte() != Type)
throw new FormatException();
DeserializeExclusiveData(reader);
this.Inputs = reader.ReadSerializableArray<TransactionInput>();
this.Outputs = reader.ReadSerializableArray<TransactionOutput>();
}
}
示例9: DeserializeExclusiveData
protected override void DeserializeExclusiveData(BinaryReader reader)
{
this.Attributes = reader.ReadSerializableArray<TransactionAttribute>();
}
示例10: DeserializeFrom
internal static Transaction DeserializeFrom(BinaryReader reader)
{
TransactionType type = (TransactionType)reader.ReadByte();
string typeName = string.Format("{0}.{1}", typeof(Transaction).Namespace, type);
Transaction transaction = typeof(Transaction).Assembly.CreateInstance(typeName) as Transaction;
if (transaction == null)
throw new FormatException();
transaction.DeserializeUnsignedWithoutType(reader);
transaction.Scripts = reader.ReadSerializableArray<Script>();
return transaction;
}
示例11: DeserializeUnsignedWithoutType
private void DeserializeUnsignedWithoutType(BinaryReader reader)
{
DeserializeExclusiveData(reader);
Attributes = reader.ReadSerializableArray<TransactionAttribute>();
Inputs = reader.ReadSerializableArray<TransactionInput>();
TransactionInput[] inputs = GetAllInputs().ToArray();
for (int i = 1; i < inputs.Length; i++)
for (int j = 0; j < i; j++)
if (inputs[i].PrevHash == inputs[j].PrevHash && inputs[i].PrevIndex == inputs[j].PrevIndex)
throw new FormatException();
Outputs = reader.ReadSerializableArray<TransactionOutput>();
if (Outputs.Length > ushort.MaxValue + 1)
throw new FormatException();
}
示例12: using
void ISignable.FromUnsignedArray(byte[] value)
{
using (MemoryStream ms = new MemoryStream(value, false))
using (BinaryReader reader = new BinaryReader(ms))
{
this.PrevHash = reader.ReadSerializable<UInt256>();
this.Miner = Secp256r1Point.DeserializeFrom(reader);
this.NoncePieces.Clear();
int count = (int)reader.ReadVarInt();
for (int i = 0; i < count; i++)
{
Secp256r1Point key = Secp256r1Point.DeserializeFrom(reader);
if (key == Miner) throw new FormatException();
value = reader.ReadBytes((int)reader.ReadVarInt());
NoncePieces.Add(key, value);
}
this.NonceHash = reader.ReadSerializable<UInt256>();
this.TransactionHashes = reader.ReadSerializableArray<UInt256>();
}
}
示例13: DeserializeInTransaction
internal void DeserializeInTransaction(BinaryReader reader, AgencyTransaction tx)
{
DeserializeUnsignedInternal(reader, tx.AssetId, tx.ValueAssetId, tx.Agent);
Scripts = reader.ReadSerializableArray<Script>();
}
示例14:
void ISerializable.Deserialize(BinaryReader reader)
{
this.Headers = reader.ReadSerializableArray<BlockHeader>();
}
示例15:
void ISerializable.Deserialize(BinaryReader reader)
{
this.Version = reader.ReadUInt32();
this.HashStart = reader.ReadSerializableArray<UInt256>();
this.HashStop = reader.ReadSerializable<UInt256>();
}