0

コントローラーのクラス名が、渡されたコントローラー名の名前であるかどうかを確認しようとしています。ラムダ式が間違っていると思うため、正しく動作していません。正しいコントローラー名を渡していますが、エクスポート変数は常に null です。

  Public Function CreateController(requestContext As System.Web.Routing.RequestContext,    
       controllerName As String) 
       As System.Web.Mvc.IController Implements 
       System.Web.Mvc.IControllerFactory.CreateController





    Dim controller As IController = Nothing

    If controllerName IsNot Nothing Then



        Dim controllerClassName As String = controllerName & "Controller"

        Dim export As Lazy(Of IController) = Me.container.GetExports(Of IController)().Where(
        Function(c)
            Return c.Value.GetType.Name = controllerClassName
        End Function
        ).FirstOrDefault()

何か明確にする必要がある場合は、お知らせください。ありがとう!

4

1 に答える 1

1

はい、ラムダ式が間違っています。これでうまくいくはずです

Dim export As Lazy(Of IController) = Me.container.GetExports(Of IController)() _
                                              .Where(Function(c) c.Value.GetType.Name = controllerClassName) _
                                              .FirstOrDefault() 
于 2012-06-22T13:45:19.610 に答える