I've rebuild ''DotNetNuke.Modules.Html.SqlDataProvider'.DLL' from the downloaded source code and started to receive errors:
System.TypeLoadException: Could not load type ''DotNetNuke.Modules.Html.SqlDataProvider'' from assembly ''DotNetNuke.Modules.Html.SqlDataProvider''.
at System.RuntimeTypeHandle._GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, Boolean loadTypeFromPartialName)
at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)
at System.RuntimeType.PrivateGetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)
at System.Type.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)
at System.Web.Compilation.BuildManager.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)
at System.Web.Compilation.BuildManager.GetType(String typeName, Boolean throwOnError)
at DotNetNuke.Framework.Reflection.CreateObject(String TypeName, String CacheKey, Boolean UseCache) in C:\Projects\DNNLibrary\Components\Shared\Reflection.vb:line 241
After investigation I noticed that caller specify provider namespace as ''DotNetNuke.Modules.Html", but the actual namespace in SqlDataProvider'.vb is ''DotNetNuke.Modules.HTML".
Because current code in DotNetNuke.Framework.Reflection.CreateObject loads case-sensitive names, the error occured.
It will be bettter to change core code to use BuildManager.GetType overload that ignores case.
objType = BuildManager.GetType(TypeName,
True, True)
I've reported a bug in DNN support. Update: It will be fixed in DNN 4.1