public void readField(ImportContext ctx, object target)
 {
     object value = ctx.readObject(_type);
     if (_field != null) {
     ctx.setField(_field, target, value);
     }
 }
Ejemplo n.º 2
0
 public override object readObject(ImportContext ctx, TypeData[] typeArguments = null)
 {
     // TODO: is this correct?
     return ctx.readObject(this);
 }
Ejemplo n.º 3
0
 protected void readEntries(
     ImportContext ctx, Action<object> addAction, int size, TypeData expectedElementType)
 {
     for (int ii = 0; ii < size; ii++) {
     addAction(ctx.readObject(expectedElementType));
     }
 }
Ejemplo n.º 4
0
 public override object readObject(ImportContext ctx, TypeData[] typeArgs = null)
 {
     int size = ctx.readLength();
     TypeData elementType = typeArgs[0];
     Type fullType = typeof(HashMultiset<>).MakeGenericType(elementType.getType());
     object value = Activator.CreateInstance(fullType);
     if (size > 0) {
     MethodInfo method = fullType.GetMethod("Add",
             new Type[] { elementType.getType(), typeof(int) });
     object[] argArray = new object[2];
     for (int ii = 0; ii < size; ii++) {
         argArray[0] = ctx.readObject(elementType);
         argArray[1] = ctx.readLength();
         method.Invoke(value, argArray);
     }
     }
     return value;
 }
Ejemplo n.º 5
0
 public override object readObject(ImportContext ctx, TypeData[] typeArgs = null)
 {
     int size = ctx.readLength();
     TypeData keyType = typeArgs[0];
     TypeData valType = typeArgs[1];
     Type dicType = getType().MakeGenericType(keyType.getType(), valType.getType());
     IDictionary dic = (IDictionary)Activator.CreateInstance(dicType);
     this.logInfo("Going to be reading in...",
         "dic", dic, "keyType", keyType.getType());
     for (int ii = 0; ii < size; ii++) {
     dic.Add(ctx.readObject(keyType), ctx.readObject(valType));
     }
     return dic;
 }