我在我的 Web API 应用程序中使用 Automapper 和 StructureMap。我在编译期间收到以下错误消息。我已经安装了以下内容:
结构图 4.5
结构图.MVC5 3.1.1.134
StructureMap.web 4.0.0.315
结构图.webapi2 3.0.4.125
没有从
MapperConfiguration
到的隐式转换IMapperConfiguration
在以下代码行:
For<IMapperConfiguration>().Use(config);
完整代码如下
public class DefaultRegistry : Registry
{
#region Constructors and Destructors
public DefaultRegistry()
{
var profiles = from t in typeof(DefaultRegistry).Assembly.GetTypes()
where typeof(Profile).IsAssignableFrom(t)
select (Profile) Activator.CreateInstance(t);
var config = new MapperConfiguration(cfg =>
{
foreach (var profile in profiles)
{
cfg.AddProfile(profile);
}
});
//Create a mapper that will be used by the DI container
var mapper = config.CreateMapper();
//Register the DI interfaces with their implementation
For<IMapperConfiguration>().Use(config);
For<IMapper>().Use(mapper);
//Register the UserRepository and pass instance of Mapper to its constructor
For<IMovieBusiness>().Use<MovieBusiness>().Ctor<IMapper>().Is(mapper);
For<IConnectionFactory>().Use<ConnectionFactory>();
For<IMovieRepository>().Use<MovieRepository>();
For<IUnitOfWork>().Use<UnitOfWork>();
For<IMovieService>().Use<MovieService>();
For<IMovieBusiness>().Use<MovieBusiness>();
}