public static void Encode(XdrDataOutputStream stream, TransactionMeta encodedTransactionMeta) { stream.WriteInt((int)encodedTransactionMeta.Discriminant); switch (encodedTransactionMeta.Discriminant) { case 0: int operationssize = encodedTransactionMeta.Operations.Length; stream.WriteInt(operationssize); for (int i = 0; i < operationssize; i++) { OperationMeta.Encode(stream, encodedTransactionMeta.Operations[i]); } break; case 1: TransactionMetaV1.Encode(stream, encodedTransactionMeta.V1); break; case 2: TransactionMetaV2.Encode(stream, encodedTransactionMeta.V2); break; } }