SCSF: EntityMapperTranslator Fehler im VB Code

So heute habe ich ein weinig mit der Smart Client Software Factory gearbeitet.

Als ich nun einen EntityMapperTranslator erstellen wollte hat noch alles geklappt nur leider wollte er diesen nicht finden als ich Ihn aufgerufen habe.
Ein Eintrag im Forum gab dann aufschluss über das Problem:

http://www.codeplex.com/smartclient/Thread/View.aspx?ThreadId=10938

Die Basisdateien enthalten im VB Code ein paar kleine Fehler:

EntityMapperTranslator.vb

    Public MustInherit Class EntityMapperTranslator(Of TBusinessEntity, TServiceEntity)
        Inherits BaseTranslator

        Public Overloads Overrides Function CanTranslate(ByVal targetType As System.Type, ByVal sourceType As System.Type) As Boolean
			Return (targetType Is GetType(TBusinessEntity) AndAlso sourceType Is GetType(TServiceEntity)) OrElse _
			(targetType Is GetType(TServiceEntity) AndAlso sourceType Is GetType(TBusinessEntity))
		End Function

        Public Overloads Overrides Function Translate(ByVal service As [Interface].Services.IEntityTranslatorService, ByVal targetType As System.Type, ByVal source As Object) As Object
			If targetType Is GetType(TBusinessEntity) Then
				Return ServiceToBusiness(service, CType(source, TServiceEntity))
			End If

			If targetType Is GetType(TServiceEntity) Then
				Return BusinessToService(service, CType(source, TBusinessEntity))
			End If

            Throw New EntityTranslatorException()
        End Function

        Protected MustOverride Function BusinessToService(ByVal service As IEntityTranslatorService, ByVal value As TBusinessEntity) As TServiceEntity

        Protected MustOverride Function ServiceToBusiness(ByVal service As IEntityTranslatorService, ByVal value As TServiceEntity) As TBusinessEntity

    End Class

Bei VB kann man leider nicht mit dem TypeOf Operator arbeiten um diesen Vergleich auszuführen.

EntityMapperTranslaterService.vb

        Public Function CanTranslate(ByVal targetType As System.Type, ByVal sourceType As System.Type) As Boolean Implements [Interface].Services.IEntityTranslatorService.CanTranslate
            If targetType Is Nothing Then
                Throw New ArgumentNullException("targetType")
            End If
            If sourceType Is Nothing Then
                Throw New ArgumentNullException("sourceType")
            End If

			Return IsArrayConversionPossible(targetType, sourceType) OrElse FindTranslator(targetType, sourceType) IsNot Nothing
        End Function

Hier muss es isNot anstatt Is heissen.

So mal weiter üben. 🙂

Kommentare

Eine Antwort zu „SCSF: EntityMapperTranslator Fehler im VB Code“

  1. Avatar von Ahmad Kemmis

    That is precise but you must check your site speed

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert