protected override void CoreInitialize() { IEnumerable <HeaderSpec> headerSpecs; if ((object)this.AdapterConfiguration.AdapterSpecificConfiguration.DelimitedTextSpec == null) { throw new InvalidOperationException(string.Format("Configuration missing: '{0}'.", "DelimitedTextSpec")); } if (DataTypeFascade.Instance.IsNullOrWhiteSpace(this.AdapterConfiguration.AdapterSpecificConfiguration.DelimitedTextFilePath)) { throw new InvalidOperationException(string.Format("Configuration missing: '{0}'.", "DelimitedTextFilePath")); } this.DelimitedTextReader = new DelimitedTextReader(new StreamReader(File.Open(this.AdapterConfiguration.AdapterSpecificConfiguration.DelimitedTextFilePath, FileMode.Open, FileAccess.Read, FileShare.None)), this.AdapterConfiguration.AdapterSpecificConfiguration.DelimitedTextSpec); headerSpecs = this.DelimitedTextReader.ReadHeaderSpecs(); this.UpstreamMetadata = headerSpecs.Select((hs, i) => new MetaColumn() { TableIndex = 0, ColumnIndex = i, ColumnName = hs.HeaderName, ColumnType = GetColumnTypeFromFieldType(hs.FieldType), ColumnIsNullable = true, TagContext = hs }); }
protected override void CoreTerminate() { if ((object)this.DelimitedTextReader != null) { this.DelimitedTextReader.Dispose(); } this.DelimitedTextReader = null; }