public T ReadValue(IValueReader valueReader) { if (valueReader is ISingleThreadOptimize) { var current_cache = thread_cache; if (current_cache == null) { current_cache = new InternalInstance <ArrayRW <T> > { Instance = ArrayRW <T> .Create() }; thread_cache = current_cache; } if (current_cache.IsUsed) { goto Default; } current_cache.IsUsed = true; current_cache.Instance.count = -1; valueReader.ReadArray(current_cache.Instance); current_cache.IsUsed = false; if (current_cache.Instance.count == -1) { return(default);
/// <summary> /// 从值读取器中读取一个列表。 /// </summary> /// <typeparam name="TValue">值的类型</typeparam> /// <param name="valueReader">值读取器</param> /// <returns>返回一个列表</returns> public static List <TValue> ReadList <TValue>(this IValueReader valueReader) { var rw = new ListRW <List <TValue>, TValue>(); valueReader.ReadArray(rw); return(rw.content); }
/// <summary> /// 从值读取器中读取一个数组。 /// </summary> /// <typeparam name="T">元素类型</typeparam> /// <param name="valueReader">值读取器</param> /// <returns>返回一个数组</returns> public static T[] ReadArray <T>(this IValueReader valueReader) { var rw = new ArrayRW <T>(); valueReader.ReadArray(rw); return(rw.GetContent()); }
public T ReadValue(IValueReader valueReader) { var rw = new FSharpUnionRW <T>(); valueReader.ReadArray(rw); return(rw.GetContent()); }
public T ReadValue(IValueReader valueReader) { var listRW = new ListRW <T, TValue>(); valueReader.ReadArray(listRW); return(listRW.Content); }
public T ReadValue(IValueReader valueReader) { var arrayWriter = ArrayRW <T> .Create(); valueReader.ReadArray(arrayWriter); return(arrayWriter.Content); }
public T ReadValue(IValueReader valueReader) { var collectionRW = new CollectionRW <T>(); valueReader.ReadArray(collectionRW); return(collectionRW.content); }
public T ReadValue(IValueReader valueReader) { if (valueReader is IValueReader <T> reader) { return(reader.ReadValue()); } var listRW = new ListRW <T>(); valueReader.ReadArray(listRW); return(listRW.content); }
public T ReadValue(IValueReader valueReader) { if (valueReader is IValueReader <T> reader) { return(reader.ReadValue()); } var writer = new DataTableRW <T>(GetDataTableRWOptions(valueReader)); valueReader.ReadArray(writer); return(writer.datatable); }
public T ReadValue(IValueReader valueReader) { if (valueReader is IValueReader <T> tReader) { return(tReader.ReadValue()); } var dataReader = new DataSetRW <T>(); valueReader.ReadArray(dataReader); return(dataReader.Content); }
public T ReadValue(IValueReader valueReader) { if (valueReader is IValueReader <T> reader) { return(reader.ReadValue()); } var writer = new DataTableRW <T>(valueReader is ITargetedBind targeted && targeted.TargetedId != 0 ? targeted.GetDataTableRWOptions() : DefaultOptions); valueReader.ReadArray(writer); return(writer.Content); }
public TArray ReadValue(IValueReader valueReader) { if (valueReader is IValueReader <TArray> reader) { return(reader.ReadValue()); } var rw = new MultiDimArray <TArray, TElement> .FirstRW(); valueReader.ReadArray(rw); return(rw.GetContent()); }
public T ReadValue(IValueReader valueReader) { var result = Activator.CreateInstance <T>(); var dataReader = new DataTableRW(); dataReader.Initialize(result); var toArrayWriter = new TableToArrayWriter(dataReader); valueReader.ReadArray(toArrayWriter); return(result); }
public TElement[] ReadValue(IValueReader valueReader) { if (valueReader is IValueReader <TElement[]> reader) { return(reader.ReadValue()); } else { var rw = new ArrayRW <TElement>(); valueReader.ReadArray(rw); return(rw.GetContent()); } }
public FSharpList <T> ReadValue(IValueReader valueReader) { if (valueReader is IValueReader <FSharpList <T> > reader) { return(reader.ReadValue()); } else { var rw = new FSharpListRW <T>(); valueReader.ReadArray(rw); return(rw.content); } }
public T ReadValue(IValueReader valueReader) { if (valueReader is IValueReader <T> ) { return(((IValueReader <T>)valueReader).ReadValue()); } var result = Activator.CreateInstance <T>(); var dataReader = new DataSetRW(); dataReader.Initialize(result); valueReader.ReadArray(dataReader); return(result); }
public T ReadValue(IValueReader valueReader) { var writer = Rent(); valueReader.ReadArray(writer); if (valueReader is IUsePool) { var content = writer.GetCopy(); Return(writer); return(content); } return(writer.Content); }
public AuxiliaryWriter <TKey> ReadValue(IValueReader valueReader) { var auxiliaryWriter = new AuxiliaryWriter <TKey>(); if (valueReader is IValueFiller <TKey> tReader) { tReader.FillValue(auxiliaryWriter); } else if (IsArray) { valueReader.ReadArray(auxiliaryWriter.As <int>()); } else { valueReader.ReadObject(auxiliaryWriter.As <string>()); } return(auxiliaryWriter); }
public T ReadValue(IValueReader valueReader) { var dictionaryRW = new DictionaryRW <T, TKey, TValue>(); if (valueReader is IValueFiller <TKey> tFiller) { tFiller.FillValue(dictionaryRW); } if (IsArray) { valueReader.ReadArray(dictionaryRW.As <int>()); } else { valueReader.ReadObject(dictionaryRW.As <string>()); } return(dictionaryRW.Content); }
public override void OnWriteValue(int key, IValueReader valueReader) { valueReader.ReadArray(new ChildrenRW(this, key)); }