I inherited an upgraded DNN application with many custom modules. This app was recently upgraded from 3.1.1 to 4.9.0. One custom module has an abstract DataProvider class from which a SqlDataProvider class inherits. I added one new function to each class. In the DataProvider class, I added:
Public MustOverride Function UpdateMembershipUsername(ByVal OldUsername As String, ByVal NewUserName As String) As Integer
In the SqlDataProvider class, I added:
Public Overrides Function UpdateMembershipUsername(ByVal OldUsername As String, ByVal NewUserName As String) As Integer
Return CType(SqlHelper.ExecuteScalar(ConnectionString, DatabaseOwner & ObjectQualifier & "UpdateMembershipUsername", OldUsername, NewUserName), Integer)
End Function
When I run the app in debug mode, I get the following unhandled error in the CreateType function in Reflection.vb in the DotNetNuke.Framework namespace:
System.TypeLoadException occurred
Message="Method 'UpdateMembershipUsername' in type 'OURCOMPANY.Modules.OueAppRegistration.SqlDataProvider' from assembly 'OURCOMPANY.Modules.OueAppRegistration.SqlDataProvider, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation."
Source="mscorlib"
TypeName="OURCOMPANY.Modules. OueAppRegistration.SqlDataProvider"
StackTrace:
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 DotNetNuke.Framework.Reflection.CreateType(String TypeName, String CacheKey, Boolean UseCache, Boolean IgnoreErrors) in C:\OueApp\Library\Components\Framework\Reflection.vb:line 278
InnerException:
I tried rebuilding the solution in VS2008, but I notice that in the
C:\ OurApp\Website\DesktopModules\OurAppRegistration\Providers\DataProviders\SqlDataProvider\bin directory, the OURCOMPANY.Modules.OurAppRegistration.SqlDataProvider.dll shows an old date. I think that’s the problem, because all the other functions that existed before my new addition do not now, and never did previously, throw this type of error.
How can I get this file to compile? Would everyone agree that this is the problem?