Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data/Data/Core
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv31486/Core
Modified Files:
AdoTemplate.cs
Log Message:
performance improvements in ado.net framework, optimize reflection calls.
Index: AdoTemplate.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data/Data/Core/AdoTemplate.cs,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** AdoTemplate.cs 6 Dec 2007 06:21:25 -0000 1.8
--- AdoTemplate.cs 28 Dec 2007 19:37:13 -0000 1.9
***************
*** 31,34 ****
--- 31,35 ----
using Spring.Data.Common;
using Spring.Data.Support;
+ using Spring.Reflection.Dynamic;
using Spring.Util;
***************
*** 59,62 ****
--- 60,64 ----
private bool lazyInit = true;
protected Type dataReaderWrapperType;
+ protected IDynamicConstructor newDataReaderWrapper;
#endregion
***************
*** 159,163 ****
{
dataReaderWrapperType = value;
! //TODO chec for zero arg ctor...
}
else
--- 161,167 ----
{
dataReaderWrapperType = value;
! ConstructorInfo constructor = ObjectUtils.GetZeroArgConstructorInfo(dataReaderWrapperType);
! newDataReaderWrapper = DynamicConstructor.Create(constructor);
!
}
else
***************
*** 3032,3038 ****
public override IDataReader CreateDataReaderWrapper(IDataReader readerToWrap)
{
! if (dataReaderWrapperType != null)
{
! IDataReaderWrapper wrapper = (IDataReaderWrapper)ObjectUtils.InstantiateType(DataReaderWrapperType);
wrapper.WrappedReader = readerToWrap;
return wrapper;
--- 3036,3042 ----
public override IDataReader CreateDataReaderWrapper(IDataReader readerToWrap)
{
! if (dataReaderWrapperType != null && newDataReaderWrapper != null)
{
! IDataReaderWrapper wrapper = (IDataReaderWrapper) newDataReaderWrapper.Invoke(ObjectUtils.EmptyObjects);
wrapper.WrappedReader = readerToWrap;
return wrapper;
|