internal static string ToText(object rec, ChoXmlRecordConfiguration configuration, Encoding encoding, int bufferSize, TraceSwitch traceSwitch = null) { if (rec is DataTable) { StringBuilder xml = new StringBuilder(); using (var w = new ChoXmlWriter(xml, configuration)) w.Write(rec as DataTable); return(xml.ToString()); } else if (rec is IDataReader) { StringBuilder xml = new StringBuilder(); using (var w = new ChoXmlWriter(xml, configuration)) w.Write(rec as IDataReader); return(xml.ToString()); } ChoXmlRecordWriter writer = new ChoXmlRecordWriter(rec.GetType(), configuration); writer.TraceSwitch = traceSwitch == null ? ChoETLFramework.TraceSwitchOff : traceSwitch; using (var stream = new MemoryStream()) using (var reader = new StreamReader(stream)) using (var sw = new StreamWriter(stream, configuration.Encoding, configuration.BufferSize)) { writer.WriteTo(sw, new object[] { rec }).Loop(); sw.Flush(); stream.Position = 0; return(reader.ReadToEnd()); } }
private void Init() { if (Configuration == null) { Configuration = new ChoXmlRecordConfiguration(typeof(T)); } _writer = new ChoXmlRecordWriter(typeof(T), Configuration); _writer.RowsWritten += NotifyRowsWritten; }
private void Init() { var recordType = typeof(T).GetUnderlyingType(); if (Configuration == null) { Configuration = new ChoXmlRecordConfiguration(recordType); } _writer = new ChoXmlRecordWriter(recordType, Configuration); _writer.RowsWritten += NotifyRowsWritten; }
internal static string ToText(object rec, ChoXmlRecordConfiguration configuration, Encoding encoding, int bufferSize, TraceSwitch traceSwitch = null) { ChoXmlRecordWriter writer = new ChoXmlRecordWriter(rec.GetType(), configuration); writer.TraceSwitch = traceSwitch == null ? ChoETLFramework.TraceSwitchOff : traceSwitch; using (var stream = new MemoryStream()) using (var reader = new StreamReader(stream)) using (var sw = new StreamWriter(stream, configuration.Encoding, configuration.BufferSize)) { writer.WriteTo(sw, new object[] { rec }).Loop(); sw.Flush(); stream.Position = 0; return(reader.ReadToEnd()); } }