0

Mapster Wiki上的文档不是很好,我似乎无法将它与 Simple Injector 连接起来。

我在下面有这个:

container.RegisterSingleton(() =>
   MapperProvider.GetConfiguredMappingConfig());
container.Register<IMapper, ServiceMapper>(Lifestyle.Singleton);

public class MapperProvider
{
    public static TypeAdapterConfig GetConfiguredMappingConfig()
    {
        var config = new TypeAdapterConfig();
        return config;
    }
}

错误

System.InvalidOperationException:配置无效。创建 BoutsController 类型的实例失败。ServiceMapper 类型的构造函数包含名为“serviceProvider”和类型 IServiceProvider 的参数,但未注册 IServiceProvider。要解析 IServiceProvider,它必须在容器中注册。

堆栈跟踪:

at SimpleInjector.InstanceProducer.VerifyExpressionBuilding()
at SimpleInjector.Container.VerifyThatAllExpressionsCanBeBuilt(InstanceProducer[] producersToVerify)
at SimpleInjector.Container.VerifyThatAllExpressionsCanBeBuilt()
at SimpleInjector.Container.VerifyInternal(Boolean suppressLifestyleMismatchVerification)
at SimpleInjector.Container.Verify()
at Tournaments.MvcApplication.Application_Start() in F:\Global.asax.cs:line 339
4

1 回答 1

0

我对 Mapster 不熟悉,但是看了ServiceMapper 源码之后,我觉得下面的代码可以让你和 Mapster 集成:

var config = new TypeAdapterConfig();
container.RegisterInstance<IMapper>(new ServiceMapper(container, config));
于 2021-05-31T16:52:03.113 回答