<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>CsvDataReaderTests/app.config</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,3 +1,4 @@
 bin
 obj
 *.suo
+*.user</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -2,264 +2,266 @@
 Imports System.Text
 Imports System.IO
 Imports System.Collections.ObjectModel
+Imports log4net
 
-    Public Class CsvDataReader
-        Inherits StreamReader
-        Implements IDataReader
+Public Class CsvDataReader
+    Inherits StreamReader
+    Implements IDataReader
 
 #Region &quot;Privates&quot;
 
-        Private Const DEFAULT_FIELD_SEPARATOR As String = &quot;,&quot;
+    Private Const DEFAULT_FIELD_SEPARATOR As String = &quot;,&quot;
+    Private Shared ReadOnly Log As ILog = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod.DeclaringType)
 
-        Private _disposed As Boolean = False
-        Private _dataTable As New DataTable
-        Private _dataRow As DataRow
+    Private _disposed As Boolean = False
+    Private _dataTable As New DataTable
+    Private _dataRow As DataRow
 
 #End Region
 
-#Region &quot;Constructor&quot;
+#Region &quot;Constructors&quot;
 
-        Public Sub New(ByVal path As String)
-            MyBase.New(path)
+    Public Sub New(ByVal path As String)
+        MyBase.New(path)
 
-            For Each column As DataColumn In Me.GetColumnsFromFirstRow
-                Me.DataTable.Columns.Add(column)
-            Next
-        End Sub
+        For Each column As DataColumn In Me.GetColumnsFromFirstRow
+            Me.DataTable.Columns.Add(column)
+        Next
+    End Sub
 
-        Public Sub New(ByVal path As String, ByVal columns As Collection(Of DataColumn))
-            MyBase.New(path)
+    Public Sub New(ByVal path As String, ByVal columns As Collection(Of DataColumn))
+        MyBase.New(path)
 
-            For Each column As DataColumn In columns
-                Me.DataTable.Columns.Add(column)
-            Next
-        End Sub
+        For Each column As DataColumn In columns
+            Me.DataTable.Columns.Add(column)
+        Next
+    End Sub
 
-        Public Sub New(ByVal path As String, ByVal encoding As Encoding)
-            MyBase.New(path, encoding)
+    Public Sub New(ByVal path As String, ByVal encoding As Encoding)
+        MyBase.New(path, encoding)
 
-            For Each column As DataColumn In Me.GetColumnsFromFirstRow
-                Me.DataTable.Columns.Add(column)
-            Next
-        End Sub
+        For Each column As DataColumn In Me.GetColumnsFromFirstRow
+            Me.DataTable.Columns.Add(column)
+        Next
+    End Sub
 
-        Public Sub New(ByVal path As String, ByVal columns As Collection(Of DataColumn), ByVal encoding As Encoding)
-            MyBase.New(path, encoding)
+    Public Sub New(ByVal path As String, ByVal columns As Collection(Of DataColumn), ByVal encoding As Encoding)
+        MyBase.New(path, encoding)
 
-            For Each column As DataColumn In columns
-                Me.DataTable.Columns.Add(column)
-            Next
-        End Sub
+        For Each column As DataColumn In columns
+            Me.DataTable.Columns.Add(column)
+        Next
+    End Sub
 
 #End Region
 
 #Region &quot;Properties&quot;
 
-        Protected Overridable ReadOnly Property DataTable() As DataTable
-            Get
-                Return _dataTable
-            End Get
-        End Property
+    Protected Overridable ReadOnly Property DataTable() As DataTable
+        Get
+            Return _dataTable
+        End Get
+    End Property
 
-        Protected Overridable ReadOnly Property CurrentDataRow() As DataRow
-            Get
-                Return _dataRow
-            End Get
-        End Property
+    Protected Overridable ReadOnly Property CurrentDataRow() As DataRow
+        Get
+            Return _dataRow
+        End Get
+    End Property
 
-        Protected Overridable Function GetColumnsFromFirstRow() As Collection(Of DataColumn)
-            Dim header As String = Me.ReadLine
-            Dim fields() As String = header.Split(DEFAULT_FIELD_SEPARATOR)
+    Protected Overridable Function GetColumnsFromFirstRow() As Collection(Of DataColumn)
+        Dim header As String = Me.ReadLine
+        Dim fields() As String = header.Split(DEFAULT_FIELD_SEPARATOR)
 
-            Dim columns As New Collection(Of DataColumn)
-            For Each field As String In fields
-                Debug.WriteLine(&quot;HeaderColumnName: &quot; &amp; field.Trim)
+        Dim columns As New Collection(Of DataColumn)
+        For Each field As String In fields
+            Debug.WriteLine(&quot;HeaderColumnName: &quot; &amp; field.Trim)
 
-                columns.Add(New DataColumn(field.Trim, GetType(String)))
-            Next
+            columns.Add(New DataColumn(field.Trim, GetType(String)))
+        Next
 
-            Return columns
-        End Function
+        Return columns
+    End Function
 
 #End Region
 
 #Region &quot;IDataReader&quot;
 
-        Public Overrides Sub Close() Implements System.Data.IDataReader.Close
-            MyBase.Close()
-        End Sub
-
-        Public ReadOnly Property Depth() As Integer Implements System.Data.IDataReader.Depth
-            Get
-                Return 0
-            End Get
-        End Property
+    Public Overrides Sub Close() Implements System.Data.IDataReader.Close
+        MyBase.Close()
+    End Sub
 
-        Public Function GetSchemaTable() As System.Data.DataTable Implements System.Data.IDataReader.GetSchemaTable
-            Return Me.DataTable
-        End Function
+    Public ReadOnly Property Depth() As Integer Implements System.Data.IDataReader.Depth
+        Get
+            Return 0
+        End Get
+    End Property
 
-        Public ReadOnly Property IsClosed() As Boolean Implements System.Data.IDataReader.IsClosed
-            Get
-                Return False
-            End Get
-        End Property
+    Public Function GetSchemaTable() As System.Data.DataTable Implements System.Data.IDataReader.GetSchemaTable
+        Return Me.DataTable
+    End Function
 
-        Public Function NextResult() As Boolean Implements System.Data.IDataReader.NextResult
+    Public ReadOnly Property IsClosed() As Boolean Implements System.Data.IDataReader.IsClosed
+        Get
             Return False
-        End Function
-
-        Public Overloads Function Read() As Boolean Implements System.Data.IDataReader.Read
-            If Me.Peek &gt;= 0 Then
-                Dim fields() As Object = Me.ReadLine.Split(DEFAULT_FIELD_SEPARATOR)
-
-                REM Turn empty strings into Nothing, which Row turns to DbNull if the Column allows it
-                REM Row.Add will throw an exception if the column does not allow nulls
-                For f = 0 To fields.Length - 1
-                    If String.IsNullOrEmpty(fields(f)) Then
-                        fields(f) = Nothing
-                    End If
-                Next
+        End Get
+    End Property
+
+    Public Function NextResult() As Boolean Implements System.Data.IDataReader.NextResult
+        Return False
+    End Function
+
+    Public Overloads Function Read() As Boolean Implements System.Data.IDataReader.Read
+        If Me.Peek &gt;= 0 Then
+            Dim fields() As Object = Me.ReadLine.Split(DEFAULT_FIELD_SEPARATOR)
+
+            REM Turn empty strings into Nothing, which Row turns to DbNull if the Column allows it
+            REM Row.Add will throw an exception if the column does not allow nulls
+            For f = 0 To fields.Length - 1
+                If String.IsNullOrEmpty(fields(f)) Then
+                    fields(f) = Nothing
+                End If
+            Next
 
-                Me.DataTable.Rows.Add(fields)
+            Me.DataTable.Rows.Add(fields)
 
 
-                _dataRow = Me.DataTable.Rows(Me.DataTable.Rows.Count - 1)
+            _dataRow = Me.DataTable.Rows(Me.DataTable.Rows.Count - 1)
 
-                Return True
-            Else
-                Return False
-            End If
-        End Function
+            Return True
+        Else
+            Return False
+        End If
+    End Function
 
-        Public ReadOnly Property RecordsAffected() As Integer Implements System.Data.IDataReader.RecordsAffected
-            Get
-                Return 0
-            End Get
-        End Property
+    Public ReadOnly Property RecordsAffected() As Integer Implements System.Data.IDataReader.RecordsAffected
+        Get
+            Return 0
+        End Get
+    End Property
 
-        Public ReadOnly Property FieldCount() As Integer Implements System.Data.IDataRecord.FieldCount
-            Get
-                Return Me.DataTable.Columns.Count
-            End Get
-        End Property
+    Public ReadOnly Property FieldCount() As Integer Implements System.Data.IDataRecord.FieldCount
+        Get
+            Return Me.DataTable.Columns.Count
+        End Get
+    End Property
 
-        Public Function GetBoolean(ByVal i As Integer) As Boolean Implements System.Data.IDataRecord.GetBoolean
-            Return Me.CurrentDataRow.Item(i)
-        End Function
+    Public Function GetBoolean(ByVal i As Integer) As Boolean Implements System.Data.IDataRecord.GetBoolean
+        Return Me.CurrentDataRow.Item(i)
+    End Function
 
-        Public Function GetByte(ByVal i As Integer) As Byte Implements System.Data.IDataRecord.GetByte
-            'Return Convert.ToByte(_row(i).Trim)
-        End Function
+    Public Function GetByte(ByVal i As Integer) As Byte Implements System.Data.IDataRecord.GetByte
+        'Return Convert.ToByte(_row(i).Trim)
+    End Function
 
-        Public Function GetBytes(ByVal i As Integer, ByVal fieldOffset As Long, ByVal buffer() As Byte, ByVal bufferoffset As Integer, ByVal length As Integer) As Long Implements System.Data.IDataRecord.GetBytes
+    Public Function GetBytes(ByVal i As Integer, ByVal fieldOffset As Long, ByVal buffer() As Byte, ByVal bufferoffset As Integer, ByVal length As Integer) As Long Implements System.Data.IDataRecord.GetBytes
 
-        End Function
+    End Function
 
-        Public Function GetChar(ByVal i As Integer) As Char Implements System.Data.IDataRecord.GetChar
-            Return Me.GetString(i)
-        End Function
+    Public Function GetChar(ByVal i As Integer) As Char Implements System.Data.IDataRecord.GetChar
+        Return Me.GetString(i)
+    End Function
 
-        Public Function GetChars(ByVal i As Integer, ByVal fieldoffset As Long, ByVal buffer() As Char, ByVal bufferoffset As Integer, ByVal length As Integer) As Long Implements System.Data.IDataRecord.GetChars
-            Throw New NotImplementedException
-        End Function
+    Public Function GetChars(ByVal i As Integer, ByVal fieldoffset As Long, ByVal buffer() As Char, ByVal bufferoffset As Integer, ByVal length As Integer) As Long Implements System.Data.IDataRecord.GetChars
+        Throw New NotImplementedException
+    End Function
 
-        Public Function GetData(ByVal i As Integer) As System.Data.IDataReader Implements System.Data.IDataRecord.GetData
-            Throw New NotImplementedException
-        End Function
+    Public Function GetData(ByVal i As Integer) As System.Data.IDataReader Implements System.Data.IDataRecord.GetData
+        Throw New NotImplementedException
+    End Function
 
-        Public Function GetDataTypeName(ByVal i As Integer) As String Implements System.Data.IDataRecord.GetDataTypeName
-            Return Me.DataTable.Columns(i).DataType.Name
-        End Function
+    Public Function GetDataTypeName(ByVal i As Integer) As String Implements System.Data.IDataRecord.GetDataTypeName
+        Return Me.DataTable.Columns(i).DataType.Name
+    End Function
 
-        Public Function GetDateTime(ByVal i As Integer) As Date Implements System.Data.IDataRecord.GetDateTime
-            Return Me.GetValue(i)
-        End Function
+    Public Function GetDateTime(ByVal i As Integer) As Date Implements System.Data.IDataRecord.GetDateTime
+        Return Me.GetValue(i)
+    End Function
 
-        Public Function GetDecimal(ByVal i As Integer) As Decimal Implements System.Data.IDataRecord.GetDecimal
-            Return Me.GetValue(i)
-        End Function
+    Public Function GetDecimal(ByVal i As Integer) As Decimal Implements System.Data.IDataRecord.GetDecimal
+        Return Me.GetValue(i)
+    End Function
 
-        Public Function GetDouble(ByVal i As Integer) As Double Implements System.Data.IDataRecord.GetDouble
-            Return Me.GetValue(i)
-        End Function
+    Public Function GetDouble(ByVal i As Integer) As Double Implements System.Data.IDataRecord.GetDouble
+        Return Me.GetValue(i)
+    End Function
 
-        Public Function GetFieldType(ByVal i As Integer) As System.Type Implements System.Data.IDataRecord.GetFieldType
-            Return Me.CurrentDataRow.Item(i).GetType
-        End Function
+    Public Function GetFieldType(ByVal i As Integer) As System.Type Implements System.Data.IDataRecord.GetFieldType
+        Return Me.CurrentDataRow.Item(i).GetType
+    End Function
 
-        Public Function GetFloat(ByVal i As Integer) As Single Implements System.Data.IDataRecord.GetFloat
-            Return Me.GetValue(i)
-        End Function
+    Public Function GetFloat(ByVal i As Integer) As Single Implements System.Data.IDataRecord.GetFloat
+        Return Me.GetValue(i)
+    End Function
 
-        Public Function GetGuid(ByVal i As Integer) As System.Guid Implements System.Data.IDataRecord.GetGuid
-            Return Me.GetValue(i)
-        End Function
+    Public Function GetGuid(ByVal i As Integer) As System.Guid Implements System.Data.IDataRecord.GetGuid
+        Return Me.GetValue(i)
+    End Function
 
-        Public Function GetInt16(ByVal i As Integer) As Short Implements System.Data.IDataRecord.GetInt16
-            Return Me.GetValue(i)
-        End Function
+    Public Function GetInt16(ByVal i As Integer) As Short Implements System.Data.IDataRecord.GetInt16
+        Return Me.GetValue(i)
+    End Function
 
-        Public Function GetInt32(ByVal i As Integer) As Integer Implements System.Data.IDataRecord.GetInt32
-            Return Me.GetValue(i)
-        End Function
+    Public Function GetInt32(ByVal i As Integer) As Integer Implements System.Data.IDataRecord.GetInt32
+        Return Me.GetValue(i)
+    End Function
 
-        Public Function GetInt64(ByVal i As Integer) As Long Implements System.Data.IDataRecord.GetInt64
-            Return Me.GetValue(i)
-        End Function
+    Public Function GetInt64(ByVal i As Integer) As Long Implements System.Data.IDataRecord.GetInt64
+        Return Me.GetValue(i)
+    End Function
 
-        Public Function GetName(ByVal i As Integer) As String Implements System.Data.IDataRecord.GetName
-            Return Me.DataTable.Columns(i).ColumnName
-        End Function
+    Public Function GetName(ByVal i As Integer) As String Implements System.Data.IDataRecord.GetName
+        Return Me.DataTable.Columns(i).ColumnName
+    End Function
 
-        Public Function GetOrdinal(ByVal name As String) As Integer Implements System.Data.IDataRecord.GetOrdinal
-            Return Me.DataTable.Columns(name).Ordinal
-        End Function
+    Public Function GetOrdinal(ByVal name As String) As Integer Implements System.Data.IDataRecord.GetOrdinal
+        Return Me.DataTable.Columns(name).Ordinal
+    End Function
 
-        Public Function GetString(ByVal i As Integer) As String Implements System.Data.IDataRecord.GetString
-            Return Me.CurrentDataRow.Item(i).ToString
-        End Function
+    Public Function GetString(ByVal i As Integer) As String Implements System.Data.IDataRecord.GetString
+        Return Me.CurrentDataRow.Item(i).ToString
+    End Function
 
-        Public Function GetValue(ByVal i As Integer) As Object Implements System.Data.IDataRecord.GetValue
-            Return Me.CurrentDataRow.Item(i)
-        End Function
+    Public Function GetValue(ByVal i As Integer) As Object Implements System.Data.IDataRecord.GetValue
+        Return Me.CurrentDataRow.Item(i)
+    End Function
 
-        Public Function GetValues(ByVal values() As Object) As Integer Implements System.Data.IDataRecord.GetValues
-            Me.CurrentDataRow.ItemArray.CopyTo(values, 0)
-        End Function
+    Public Function GetValues(ByVal values() As Object) As Integer Implements System.Data.IDataRecord.GetValues
+        Me.CurrentDataRow.ItemArray.CopyTo(values, 0)
+    End Function
 
-        Public Function IsDBNull(ByVal i As Integer) As Boolean Implements System.Data.IDataRecord.IsDBNull
-            Return Me.CurrentDataRow.IsNull(i)
-        End Function
+    Public Function IsDBNull(ByVal i As Integer) As Boolean Implements System.Data.IDataRecord.IsDBNull
+        Return Me.CurrentDataRow.IsNull(i)
+    End Function
 
-        Default Public Overloads ReadOnly Property Item(ByVal i As Integer) As Object Implements System.Data.IDataRecord.Item
-            Get
-                Return Me.GetValue(i)
-            End Get
-        End Property
+    Default Public Overloads ReadOnly Property Item(ByVal i As Integer) As Object Implements System.Data.IDataRecord.Item
+        Get
+            Return Me.GetValue(i)
+        End Get
+    End Property
 
-        Default Public Overloads ReadOnly Property Item(ByVal name As String) As Object Implements System.Data.IDataRecord.Item
-            Get
-                Return Me.GetValue(Me.GetOrdinal(name))
-            End Get
-        End Property
+    Default Public Overloads ReadOnly Property Item(ByVal name As String) As Object Implements System.Data.IDataRecord.Item
+        Get
+            Return Me.GetValue(Me.GetOrdinal(name))
+        End Get
+    End Property
 
 #End Region
 
-#Region &quot; IDisposable Support &quot;
+#Region &quot;IDisposable&quot;
 
-        Protected Overrides Sub Dispose(ByVal disposing As Boolean)
-            If Not _disposed Then
-                If disposing Then
-                    Me.DataTable.Dispose()
-                End If
-
-                _disposed = True
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        If Not _disposed Then
+            If disposing Then
+                Me.DataTable.Dispose()
             End If
 
-            MyBase.Dispose(disposing)
-        End Sub
+            _disposed = True
+        End If
+
+        MyBase.Dispose(disposing)
+    End Sub
 
 #End Region
 
-    End Class
+End Class</diff>
      <filename>CsvDataReader/CsvDataReader.vb</filename>
    </modified>
    <modified>
      <diff>@@ -36,6 +36,10 @@
     &lt;NoWarn&gt;42016,41999,42017,42018,42019,42032,42036,42020,42021,42022&lt;/NoWarn&gt;
   &lt;/PropertyGroup&gt;
   &lt;ItemGroup&gt;
+    &lt;Reference Include=&quot;log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL&quot;&gt;
+      &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
+      &lt;HintPath&gt;bin\log4net.dll&lt;/HintPath&gt;
+    &lt;/Reference&gt;
     &lt;Reference Include=&quot;System&quot; /&gt;
     &lt;Reference Include=&quot;System.Data&quot; /&gt;
     &lt;Reference Include=&quot;System.Xml&quot; /&gt;</diff>
      <filename>CsvDataReader/CsvDataReader.vbproj</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,7 @@
 &#65279;Imports System
 Imports System.Reflection
 Imports System.Runtime.InteropServices
+Imports log4net
 
 ' General Information about an assembly is controlled through the following 
 ' set of attributes. Change these attribute values to modify the information
@@ -14,6 +15,7 @@ Imports System.Runtime.InteropServices
 &lt;Assembly: AssemblyProduct(&quot;&quot;)&gt; 
 &lt;Assembly: AssemblyCopyright(&quot;&quot;)&gt; 
 &lt;Assembly: AssemblyTrademark(&quot;&quot;)&gt; 
+&lt;Assembly: log4net.Config.XmlConfigurator(Watch:=True)&gt; 
 
 &lt;Assembly: ComVisible(False)&gt;
 </diff>
      <filename>CsvDataReader/My Project/AssemblyInfo.vb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,26 @@
-&#65279;Public Class CsvDataReaderTests
+&#65279;Imports System.IO
+Imports NUnit.Framework
+Imports ChrisLaco.Data
+
+&lt;TestFixture(Description:=&quot;CsvDataReader Tests&quot;)&gt; _
+Public Class CsvDataReaderTests
+
+#Region &quot;Constructor Tests&quot;
+
+    &lt;TestFixtureSetUp()&gt; _
+    Public Sub TestFixtureSetupUp()
+        log4net.Config.XmlConfigurator.Configure()
+    End Sub
+
+    &lt;Test(Description:=&quot;New throws exception for bogus file&quot;)&gt; _
+    &lt;ExpectedException(GetType(FileNotFoundException))&gt; _
+    Public Sub NewBadFileName()
+        Using reader As New CsvDataReader(&quot;crapfile&quot;)
+
+        End Using
+    End Sub
+
+#End Region
 
 End Class
+</diff>
      <filename>CsvDataReaderTests/CsvDataReaderTests.vb</filename>
    </modified>
    <modified>
      <diff>@@ -36,6 +36,14 @@
     &lt;NoWarn&gt;42016,41999,42017,42018,42019,42032,42036,42020,42021,42022&lt;/NoWarn&gt;
   &lt;/PropertyGroup&gt;
   &lt;ItemGroup&gt;
+    &lt;Reference Include=&quot;log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL&quot;&gt;
+      &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
+      &lt;HintPath&gt;bin\log4net.dll&lt;/HintPath&gt;
+    &lt;/Reference&gt;
+    &lt;Reference Include=&quot;nunit.framework, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77&quot;&gt;
+      &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
+      &lt;HintPath&gt;..\..\..\..\..\Program Files\TestDriven.NET 2.0\NUnit\2.4\nunit.framework.dll&lt;/HintPath&gt;
+    &lt;/Reference&gt;
     &lt;Reference Include=&quot;System&quot; /&gt;
     &lt;Reference Include=&quot;System.Data&quot; /&gt;
     &lt;Reference Include=&quot;System.Xml&quot; /&gt;
@@ -75,6 +83,7 @@
     &lt;/EmbeddedResource&gt;
   &lt;/ItemGroup&gt;
   &lt;ItemGroup&gt;
+    &lt;None Include=&quot;app.config&quot; /&gt;
     &lt;None Include=&quot;My Project\Application.myapp&quot;&gt;
       &lt;Generator&gt;MyApplicationCodeGenerator&lt;/Generator&gt;
       &lt;LastGenOutput&gt;Application.Designer.vb&lt;/LastGenOutput&gt;
@@ -85,6 +94,12 @@
       &lt;LastGenOutput&gt;Settings.Designer.vb&lt;/LastGenOutput&gt;
     &lt;/None&gt;
   &lt;/ItemGroup&gt;
+  &lt;ItemGroup&gt;
+    &lt;ProjectReference Include=&quot;..\CsvDataReader\CsvDataReader.vbproj&quot;&gt;
+      &lt;Project&gt;{DB3C75BA-33B9-46EE-B612-BB376E99B06D}&lt;/Project&gt;
+      &lt;Name&gt;CsvDataReader&lt;/Name&gt;
+    &lt;/ProjectReference&gt;
+  &lt;/ItemGroup&gt;
   &lt;Import Project=&quot;$(MSBuildToolsPath)\Microsoft.VisualBasic.targets&quot; /&gt;
   &lt;!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.</diff>
      <filename>CsvDataReaderTests/CsvDataReaderTests.vbproj</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,7 @@
 &#65279;Imports System
 Imports System.Reflection
 Imports System.Runtime.InteropServices
+Imports log4net
 
 ' General Information about an assembly is controlled through the following 
 ' set of attributes. Change these attribute values to modify the information</diff>
      <filename>CsvDataReaderTests/My Project/AssemblyInfo.vb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>CsvDataReader/CvsReader.suo</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>12aef86c607479f18514d7f803b369c26e9b6222</id>
    </parent>
  </parents>
  <author>
    <name>Christopher H. Laco</name>
    <email>claco@chrislaco.com</email>
  </author>
  <url>http://github.com/claco/csvdatareader/commit/5f3eda4d72bb75fb2422e95138a3bf55d8a2d8cc</url>
  <id>5f3eda4d72bb75fb2422e95138a3bf55d8a2d8cc</id>
  <committed-date>2008-09-10T22:00:16-07:00</committed-date>
  <authored-date>2008-09-10T22:00:16-07:00</authored-date>
  <message>Setup NUnit/Log4Net and config</message>
  <tree>817d09a394690325ae803b9b56c55226bef259fe</tree>
  <committer>
    <name>Christopher H. Laco</name>
    <email>claco@chrislaco.com</email>
  </committer>
</commit>
