public static DataProcessor GetReaderSingleton(Type readerType)
{
DataProcessor result;
if(!ReaderSingletonDictionary.TryGetValue(readerType, out result))
result = ReaderSingletonDictionary[readerType] = (DataProcessor)readerType.GetConstructor(Type.EmptyTypes).Invoke(null);
return result;
}