2009-10-21 57 views
0

我正在嘗試將StructureMap綁定到現有的webforms應用程序中。 由於它是webforms我必須使用Setter注入,這是不理想的,但它總比沒有好。VB .Net(WebForms)中的結構圖

我要去的地方就是VB(我真的是一個C#開發工具,目前在VB商店工作)。我寫了一個自定義掃描器,它在C#中工作正常,但我完全停留在如何將其轉換爲VB。

原來的C#是這樣的:

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

我可以在VB中得到的最接近的是這樣的:

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 

我希望反射器將能夠幫助我,但出現與我的類似的代碼,這也不會編譯。

那麼,什麼是翻譯?

回答

0

是的,在VB.Net 9.0這將是一個大問題。

這樣的事很醜陋。

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 

或者你可以等待VB.Net 10在哪裏它會更加容易。

+0

這就是我要來的。再好幾個月,直到我可以在辦公室使用VS2010。 – ilivewithian 2009-10-21 15:23:41