MS-Blog

WCF Dienst ohne Adminrechte Hosten

Dienstag, 31. März 2009 von Marco

Falls man einen WCF Dienst unter Vista ohne Adminrechte hosten will muss man dies bei Vista anmelden:

netsh http add urlacl url=http://+:80/MyUri user=DOMAINuser

Gruss Marco

SCSF: EntityMapperTranslator Fehler im VB Code

Dienstag, 31. März 2009 von Marco

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. 🙂

Seiten

Kategorien

Suchen


RSS-Feeds

Blogroll

Meta

 

© Marco – Powered by WordPress – Design: Vlad (aka Perun)