Exemple #1
0
 /// <summary>
 /// 往值写入器中写入一个列表。
 /// </summary>
 /// <typeparam name="TValue">值的类型</typeparam>
 /// <param name="valueWriter">值读取器</param>
 /// <param name="list">列表</param>
 public static void WriteList <TValue>(this IValueWriter valueWriter, List <TValue> list)
 {
     valueWriter.WriteArray(new ListRW <List <TValue>, TValue>
     {
         content = list
     });
 }
Exemple #2
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            if (valueWriter is IValueWriter <T> tWriter)
            {
                tWriter.WriteValue(value);

                return;
            }

            if (valueWriter is IValueWriter <IDataReader> iWriter)
            {
                iWriter.WriteValue(value);

                return;
            }

            if (IsArray)
            {
                valueWriter.WriteArray(value.As <int>());
            }
            else
            {
                valueWriter.WriteObject(value.As <string>());
            }
        }
Exemple #3
0
        public void OnReadValue(int key, IValueWriter valueWriter)
        {
            DataRowRW <DataRow> reader;

            if (valueWriter is IUsePool)
            {
                reader = DataRowRW;
            }
            else
            {
                reader = new DataRowRW <DataRow>();
            }


            reader.Initialize(Content.Rows[key]);

            if (key != 0 && (Options & DataTableRWOptions.WriteToArrayFromBeginningSecondRows) != 0)
            {
                valueWriter.WriteArray(reader);
            }
            else
            {
                valueWriter.WriteObject(reader);
            }
        }
Exemple #4
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            var dataReader    = new OverrideDbDataReader(value);
            var toArrayReader = new TableToArrayReader(dataReader);

            valueWriter.WriteArray(toArrayReader);
        }
Exemple #5
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            var dataReader = new DataSetRW();

            dataReader.Initialize(value);

            valueWriter.WriteArray(dataReader);
        }
Exemple #6
0
 public void WriteValue(IValueWriter valueWriter, T value)
 {
     if (value == null)
     {
         valueWriter.DirectWrite(null);
     }
     else
     {
         valueWriter.WriteArray(ArrayRW <T> .Create(value));
     }
 }
Exemple #7
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            if (value == null)
            {
                valueWriter.DirectWrite(null);

                return;
            }

            var arrayWriter = ArrayRW <T> .Create();

            arrayWriter.Initialize(value);

            valueWriter.WriteArray(arrayWriter);
        }
Exemple #8
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            if (value == null)
            {
                valueWriter.DirectWrite(null);

                return;
            }

            var collectionRW = new CollectionRW <T, TValue>();

            collectionRW.Initialize(value);

            valueWriter.WriteArray(collectionRW);
        }
Exemple #9
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            if (value == null)
            {
                valueWriter.DirectWrite(null);

                return;
            }

            var listRW = new ListRW <T, TValue>();

            listRW.Initialize(value);

            valueWriter.WriteArray(listRW);
        }
Exemple #10
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            if (value == null)
            {
                valueWriter.DirectWrite(null);

                return;
            }

            var enumeratorReader = new EnumeratorReader <T, TValue>();

            enumeratorReader.Initialize(value);

            valueWriter.WriteArray(enumeratorReader);
        }
Exemple #11
0
 public void WriteValue(IValueWriter valueWriter, TElement[] value)
 {
     if (value is null)
     {
         valueWriter.DirectWrite(null);
     }
     else if (valueWriter is IValueWriter <TElement[]> writer)
     {
         writer.WriteValue(value);
     }
     else
     {
         valueWriter.WriteArray(new ArrayRW <TElement>(value));
     }
 }
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            if (value is null)
            {
                valueWriter.DirectWrite(null);

                return;
            }

            var enumeratorReader = new EnumeratorReader <T, TValue>
            {
                content = value
            };

            valueWriter.WriteArray(enumeratorReader);
        }
Exemple #13
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            if (value is null)
            {
                valueWriter.DirectWrite(null);

                return;
            }

            var collectionRW = new CollectionRW <T>
            {
                content = value
            };

            valueWriter.WriteArray(collectionRW);
        }
 public void WriteValue(IValueWriter valueWriter, FSharpList <T> value)
 {
     if (value is null)
     {
         valueWriter.DirectWrite(null);
     }
     else if (valueWriter is IValueWriter <FSharpList <T> > writer)
     {
         writer.WriteValue(value);
     }
     else
     {
         valueWriter.WriteArray(new FSharpListRW <T> {
             content = value
         });
     }
 }
Exemple #15
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            var enumerator = value?.GetEnumerator();

            if (enumerator == null)
            {
                valueWriter.DirectWrite(null);

                return;
            }

            var enumeratorReader = new EnumeratorReader <IEnumerator <TValue>, TValue>();

            enumeratorReader.Initialize(enumerator);

            valueWriter.WriteArray(enumeratorReader);
        }
Exemple #16
0
 public void WriteValue(IValueWriter valueWriter, T value)
 {
     if (value is null)
     {
         valueWriter.DirectWrite(null);
     }
     else if (valueWriter is IValueWriter <T> writer)
     {
         writer.WriteValue(value);
     }
     else
     {
         valueWriter.WriteArray(new ListRW <T, TValue> {
             content = value
         });
     }
 }
Exemple #17
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            var rw = new FSharpUnionRW <T> {
                Content = value
            };

            var(caceInfo, values) = rw.GetUnionFields();

            if (values != null && values.Length > 0)
            {
                valueWriter.WriteArray(rw);
            }
            else
            {
                valueWriter.WriteString(caceInfo.Name);
            }
        }
Exemple #18
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            var enumerator = value?.GetEnumerator();

            if (enumerator is null)
            {
                valueWriter.DirectWrite(null);

                return;
            }

            var enumeratorReader = new EnumeratorReader <IEnumerator <TValue>, TValue>
            {
                content = enumerator
            };

            valueWriter.WriteArray(enumeratorReader);
        }
        public void WriteValue(IValueWriter valueWriter, TArray value)
        {
            if (value is null)
            {
                valueWriter.DirectWrite(null);
            }
            else if (valueWriter is IValueWriter <TArray> writer)
            {
                writer.WriteValue(value);
            }
            else
            {
                var rw = new MultiDimArray <TArray, TElement> .FirstRW();

                rw.Initialize(value);

                valueWriter.WriteArray(rw);
            }
        }
Exemple #20
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            if (value == null)
            {
                valueWriter.DirectWrite(null);

                return;
            }

            var dictionaryRW = new DictionaryRW <T, TKey, TValue>();

            dictionaryRW.Initialize(value);

            if (IsArray)
            {
                valueWriter.WriteArray(dictionaryRW.As <int>());
            }
            else
            {
                valueWriter.WriteObject(dictionaryRW.As <string>());
            }
        }
Exemple #21
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            if (value == null)
            {
                valueWriter.DirectWrite(null);

                return;
            }

            if (valueWriter is IValueWriter <T> weiter)
            {
                weiter.WriteValue(value);

                return;
            }

            var reader = new DataTableRW <T>(valueWriter is ITargetedBind targeted && targeted.TargetedId != 0 ? targeted.GetDataTableRWOptions() : DefaultOptions);

            reader.Initialize(value);

            valueWriter.WriteArray(reader);
        }
Exemple #22
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            if (value == null)
            {
                valueWriter.DirectWrite(null);

                return;
            }

            if (valueWriter is IValueWriter <T> tWriter)
            {
                tWriter.WriteValue(value);

                return;
            }

            var dataReader = new DataSetRW <T>();

            dataReader.Initialize(value);

            valueWriter.WriteArray(dataReader);
        }
Exemple #23
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            if (value is null)
            {
                valueWriter.DirectWrite(null);

                return;
            }

            if (valueWriter is IValueWriter <T> tWriter)
            {
                tWriter.WriteValue(value);

                return;
            }

            var dataReader = new DataSetRW <T>
            {
                dataset = value
            };

            valueWriter.WriteArray(dataReader);
        }
Exemple #24
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            if (value is null)
            {
                valueWriter.DirectWrite(null);

                return;
            }

            if (valueWriter is IValueWriter <T> weiter)
            {
                weiter.WriteValue(value);

                return;
            }

            var reader = new DataTableRW <T>(GetDataTableRWOptions(valueWriter))
            {
                datatable = value
            };

            valueWriter.WriteArray(reader);
        }
Exemple #25
0
 public void WriteValue(IValueWriter valueWriter, T value)
 {
     if (valueWriter is IValueWriter <T> tWriter)
     {
         tWriter.WriteValue(value);
     }
     else if (valueWriter is IValueWriter <IDataReader <TKey> > tWriter2)
     {
         tWriter2.WriteValue(value);
     }
     else if (valueWriter is IValueWriter <IDataReader> tWriter3)
     {
         tWriter3.WriteValue(value);
     }
     else if (RWHelper.IsArrayKey <TKey>())
     {
         valueWriter.WriteArray(value.As <int>());
     }
     else
     {
         valueWriter.WriteObject(value.As <string>());
     }
 }
Exemple #26
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            switch (TypeInfo <Key> .BasicType)
            {
            case BasicTypes.SByte:
            case BasicTypes.Int16:
            case BasicTypes.Int32:
            case BasicTypes.Int64:
            case BasicTypes.Byte:
            case BasicTypes.UInt16:
            case BasicTypes.UInt32:
            case BasicTypes.UInt64:
                valueWriter.WriteArray(value.As <int>());
                break;

            case BasicTypes.Char:
            case BasicTypes.String:
                valueWriter.WriteObject(value.As <string>());
                break;

            default:
                throw new NotSupportedException(StringHelper.Format("Cannot write a '{0}', It's Key not supported.", typeof(T).Name));
            }
        }
Exemple #27
0
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            var reader = new OverrideDbDataReader(value, valueWriter is ITargetedBind targeted && targeted.TargetedId != 0 ? targeted.GetDataTableRWOptions() : DefaultOptions);

            valueWriter.WriteArray(reader);
        }
 public override void OnReadValue(int key, IValueWriter valueWriter)
 {
     valueWriter.WriteArray(new ChildrenRW(this, key));
 }
Exemple #29
0
 /// <summary>
 /// 往值写入器中写入一个数组。
 /// </summary>
 /// <typeparam name="T">元素类型</typeparam>
 /// <param name="valueWriter">值写入器</param>
 /// <param name="array">数组</param>
 public static void WriteArray <T>(this IValueWriter valueWriter, T[] array)
 {
     valueWriter.WriteArray(new ArrayRW <T>(array));
 }
        public void WriteValue(IValueWriter valueWriter, T value)
        {
            var reader = new DbDataReaderReader(value, GetDataTableRWOptions(valueWriter));

            valueWriter.WriteArray(reader);
        }