I want to implement a typeHandler for DateTime objects that overrides the default DateTimeTypeHandler. I've added this text to my sqlMap.config file:
<typeHandlers> <typeHandler type="DateTime" callback="Company.Project.DataMapper.MyDateTimeTypeHandler" /> </typeHandlers> This is the implementation: public class MyDateTimeTypeHandler : ITypeHandlerCallback { public object ValueOf(string nullValue) { // ??? return Convert.ToDateTime(nullValue); } public object GetResult(IResultGetter getter) { if (getter.Value.Equals(System.DBNull.Value)) { return DateTime.MinValue; } else { return getter.Value; } } public void SetParameter(IParameterSetter setter, object parameter) { if (parameter.Equals(DateTime.MinValue)) { setter.Value = System.DBNull.Value; } else { setter.Value = parameter; } } } The MyDateTimeTypeHandler class is ignored if I don't specify a dbType attribute. If I do supply one: dbType="System.Data.OleDb.OleDbType" I get a NullReferenceException on line 200 of TypeHanlderFactory.cs: public void Register(Type type, string dbType, ITypeHandler handler) { HybridDictionary map = (HybridDictionary)_typeHandlerMap[type]; if (map == null) { map = new HybridDictionary(); _typeHandlerMap.Add(type, map); } if (dbType==null) { map.Add(NULL, handler); // line 200 } else { map.Add(dbType, handler); } } Yes, I've seen the TestCustomTypeHandler test case. That requires me to specify a typeHandler attribute on the result and parameter nodes: <result property="Bool2" column="Other_String" typeHandler="OuiNonBool" /> I don't want to do that. I want MyDateTimeTypeHandler to replace the DateTimeTypeHandler in all cases automatically. Ideas? Thanks, Ron