2009-10-21 7 views
0

Je suis en train d'essayer de raccorder StructureMap à une application webforms existante. Comme il s'agit de formulaires Web, je dois utiliser Setter Injection, ce qui n'est pas idéal, mais c'est mieux que rien. Où je suis déconnecté est la traduction vers VB (je suis vraiment un développeur C# travaillant actuellement dans un magasin VB). J'ai écrit un scanner personnalisé, qui fonctionne très bien en C#, mais je suis complètement bloqué sur la façon de le traduire en VB.Structuremap dans VB .Net (WebForms)

l'original C# ressemble à ceci:

public void Process(Type type, PluginGraph graph) 
{ 
    if (type.IsInterface) 
    { 
     graph.Configure(x => x.SetAllProperties(
       y => y.TypeMatches(
        z => z == type))); 
    } 
} 

Le plus proche que je peux obtenir en VB est la suivante:

Public Sub Process(ByVal type As Type, ByVal graph As PluginGraph) Implements ITypeScanner.Process 

    If type.IsInterface Then 

     graph.Configure(Function(x) _ 
          x.SetAllProperties(Function(y) _ 
           y.TypeMatches(Function(z) _ 
            return z Is type _ 
           ) _ 
          ) _ 
         ) 

    End If 

End Sub 

J'espérais que le réflecteur serait en mesure de me aider, mais arrive avec un code similaire au mien, qui ne se compilera pas non plus.

Alors, quelle est la traduction?

Répondre

0

Oui dans VB.Net 9.0 ce sera un gros problème.

Quelque chose de moche comme ça. Ou vous pouvez attendre VB.Net 10 où il sera beaucoup plus facile.

Private Sub configure(ByVal type As Type, ByVal graph As PluginGraph) 
      If type.IsInterface Then 
       graph.Configure(Function(x) setproperties(x, type)) 
      End If 
     End Sub 

     Private Function setproperties(ByVal x As Registry, ByVal type As Type) As Boolean 
      x.SetAllProperties(Function(y) setTypeMatches(y, type)) 
      Return True 
     End Function 

     Private Function setTypeMatches(ByVal y As SetterConvention, ByVal type As Type) As Boolean 
      y.TypeMatches(Function(z) returnType(z, type)) 
      Return True 
     End Function 

     Private Function returnType(ByVal z As Type, ByVal type As Type) As Boolean 
      Return z Is type 
     End Function 

+0

C'est ce que je voulais dire. Ah bien encore quelques mois seulement jusqu'à ce que je puisse utiliser VS2010 au bureau. – ilivewithian