2

我正在尝试使用 ASP.NET API 2.0 版中的 vb.net 在 Global.asax 文件中初始化 Automapper。我正在使用 Auto Mapper 5.2 版。我可以使用 C# 代码进行初始化,但我对 VB.Net 不太确定。谷歌搜索后,我发现了一些东西,这就是我现在正在尝试的:

Module AutoMapperConfiguration
Public MapperConfiguration As IMapper
Public Sub Configure()
    Dim config = New MapperConfiguration(//in this line I'm getting an error: 

重载解析失败,因为无法使用以下参数调用可访问的“New”:“Public Overloads Sub New(configurationExpression As MapperConfigurationExpression)”:Lambda 表达式无法转换为“MapperConfigurationExpression”,因为“MapperConfigurationExpression”不是委托类型。

        Sub(cfg)
            cfg.AddProfile(New EntityMapProfile())
        End Sub)
    MapperConfiguration = config.CreateMapper()
 End Sub
End Module

然后我从 Application_Start() 调用了这个模块

  AutoMapperConfiguration.Configure()

在这里我没有遇到任何错误,但在上一行我遇到了导致问题的错误。但上次我在 global.asax 文件中使用 C# 和以下代码行完成了这项工作

  Mapper.Initialize(x =>
        {
            x.AddProfile<EntityMapProfile>();
        });

在 Application_Start() 下运行良好,但现在即使我转换了上面的代码行,我仍然面临问题。在这里,我想提一下,我从以下 链接中找到了 VB.Net 代码,如果有人能在上面提供帮助或建议,我将不胜感激。谢谢。

4

1 回答 1

2

此 C# 的 VB 等效项:

Mapper.Initialize(x =>
    {
        x.AddProfile<EntityMapProfile>();
    });

这是:

Mapper.Initialize(Sub(x)
        x.AddProfile(Of EntityMapProfile)()
    End Sub)

你试过吗?

于 2016-12-24T03:35:41.677 回答