public void readField(ImportContext ctx, object target) { object value = ctx.readObject(_type); if (_field != null) { ctx.setField(_field, target, value); } }
public override object readObject(ImportContext ctx, TypeData[] typeArguments = null) { // TODO: is this correct? return ctx.readObject(this); }
protected void readEntries( ImportContext ctx, Action<object> addAction, int size, TypeData expectedElementType) { for (int ii = 0; ii < size; ii++) { addAction(ctx.readObject(expectedElementType)); } }
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; }
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; }