Hi,
I have been looking for any documentation on add my own custom mappers (using AutoMapper into Umbraco 8 on start up.
I tried the following code, but the error I got back was that AutoMapper can only be initialised once.
public class AutoMapperComponent : IComponent
{
// initialize: runs once when Umbraco starts
public void Initialize()
{
InitAutoMapper();
}
public void InitAutoMapper()
{
Mapper.Initialize(cfg => cfg.CreateMap<CmtRestOptions, CmtRestConfig>());
}
// terminate: runs once when Umbraco stops
public void Terminate()
{
}
}
I have then come across the following code by looking at what is exposed by composition in Visual Studio, and came across AddCoreMappers
[RuntimeLevel(MinLevel = RuntimeLevel.Run)]
public class ApplicationStartUp : IUserComposer
{
public void Compose(Composition composition)
{
// Append our component to the collection of Components
// It will be the last one to be run
composition.Mappers().AddCoreMappers<AutoMapperComponent>(); // look into add core mappers
}
}
So far I have found no documantation on implementing my own Maps using this function.
If anyone has any information concerning this, or pointers in the right direction, that would be most welcome.
He, thanks this helped me! But I can't seem to do Mapper.Map?
Problem solved:
I had to inject Mapper, since it's not static anymore. Configured like this:
var config = new AutoMapper.MapperConfiguration(cfg =>
{
cfg.AddProfile(new MyCustomProfile());
});
var mapper = config.CreateMapper();
composition.Register(mapper);
Umbraco 8 Custom core Mappers
Hi, I have been looking for any documentation on add my own custom mappers (using AutoMapper into Umbraco 8 on start up.
I tried the following code, but the error I got back was that AutoMapper can only be initialised once.
I have then come across the following code by looking at what is exposed by composition in Visual Studio, and came across AddCoreMappers
So far I have found no documantation on implementing my own Maps using this function.
If anyone has any information concerning this, or pointers in the right direction, that would be most welcome.
Kind regards, Peter
[Update: 9th July 2019: Since Umbraco 8.1 Automapper has been removed as a dependency https://umbraco.com/blog/umbraco-81-release/?_ga=2.125281161.2080844306.1562584414-163467214.1557423111#changes]
Hi Peter,
Along with the Umbraco Updated AutoMapper has been upgraded to the latest v8 version and that has changed things a little.
the prescribed way to add mappers appears to be to use a profile class
eg :
these profiles define the mappings for you and then you register the profile in your composer.
this will then let you use
Mapper.Map
across your code. as before.He, thanks this helped me! But I can't seem to do Mapper.Map?
Problem solved: I had to inject Mapper, since it's not static anymore. Configured like this:
Hi Maarten,
After registering the Auto Mapper in the composer as follows, I am still unable to use Mapper.Map in my code.
When I do this :
Do you have to do anything on your controller page to use it?
Thanks
Thanks both - can confirm, this works to enable me to add extra AutoMapper maps in Umbraco v8.0.1
is working on a reply...