Exemple #1
0
        private static ByteString EncodeTuple(object value, Type type)
        {
            var encodedTuple = new KRPC.Schema.KRPC.Tuple();
            var valueTypes   = type.GetGenericArguments().ToArray();
            var genericType  = Type.GetType("System.Tuple`" + valueTypes.Length);
            var tupleType    = genericType.MakeGenericType(valueTypes);

            for (int i = 0; i < valueTypes.Length; i++)
            {
                var property = tupleType.GetProperty("Item" + (i + 1));
                var item     = property.GetGetMethod().Invoke(value, null);
                encodedTuple.Items.Add(Encode(item, valueTypes [i]));
            }
            return(Encode(encodedTuple, typeof(KRPC.Schema.KRPC.Tuple)));
        }
Exemple #2
0
        static void WriteTuple(object value, Type type, Stream stream)
        {
            var encodedTuple = new KRPC.Schema.KRPC.Tuple();
            var valueTypes   = type.GetGenericArguments().ToArray();
            var genericType  = Type.GetType("System.Tuple`" + valueTypes.Length.ToString());
            var tupleType    = genericType.MakeGenericType(valueTypes);

            using (var internalBuffer = new MemoryStream()) {
                var internalStream = new CodedOutputStream(internalBuffer);
                for (int i = 0; i < valueTypes.Length; i++)
                {
                    var property = tupleType.GetProperty("Item" + (i + 1).ToString());
                    var item     = property.GetGetMethod().Invoke(value, null);
                    encodedTuple.Items.Add(EncodeObject(item, valueTypes [i], internalBuffer, internalStream));
                }
            }
            encodedTuple.WriteTo(stream);
        }
Exemple #3
0
 static void WriteTuple (object value, Type type, Stream stream)
 {
     var encodedTuple = new KRPC.Schema.KRPC.Tuple ();
     var valueTypes = type.GetGenericArguments ().ToArray ();
     var genericType = Type.GetType ("System.Tuple`" + valueTypes.Length.ToString ());
     var tupleType = genericType.MakeGenericType (valueTypes);
     using (var internalBuffer = new MemoryStream ()) {
         var internalStream = new CodedOutputStream (internalBuffer);
         for (int i = 0; i < valueTypes.Length; i++) {
             var property = tupleType.GetProperty ("Item" + (i + 1).ToString ());
             var item = property.GetGetMethod ().Invoke (value, null);
             encodedTuple.Items.Add (EncodeObject (item, valueTypes [i], internalBuffer, internalStream));
         }
     }
     encodedTuple.WriteTo (stream);
 }
Exemple #4
0
 private static ByteString EncodeTuple(object value, Type type)
 {
     var encodedTuple = new KRPC.Schema.KRPC.Tuple ();
     var valueTypes = type.GetGenericArguments ().ToArray ();
     var genericType = Type.GetType ("System.Tuple`" + valueTypes.Length);
     var tupleType = genericType.MakeGenericType (valueTypes);
     for (int i = 0; i < valueTypes.Length; i++) {
         var property = tupleType.GetProperty ("Item" + (i + 1));
         var item = property.GetGetMethod ().Invoke (value, null);
         encodedTuple.Items.Add (Encode (item, valueTypes [i]));
     }
     return Encode (encodedTuple, typeof(KRPC.Schema.KRPC.Tuple));
 }