Создайте свои сопоставления в профилях и определите параметры INamingConvention
соответствующим образом.
Мне не нравится global / static, поэтому я предпочитаю использовать Initialize и определять все мои сопоставления вместе. Это также имеет дополнительное преимущество, заключающееся в разрешении вызова AssertConfiguration ... что означает, что если я прервал отображение, я получу исключение при запуске, а не всякий раз, когда в моем коде используется проблемное отображение.
Mapper.Initialize(configuration =>
{
configuration.CreateProfile("Profile1", CreateProfile1);
configuration.CreateProfile("Profile2", CreateProfile2);
});
Mapper.AssertConfigurationIsValid();
в том же классе с этим методом инициализации:
public void CreateProfile1(IProfileExpression profile)
{
// this.CreateMap (not Mapper.CreateMap) statements that do the "normal" thing here
// equivalent to Mapper.CreateMap( ... ).WithProfile("Profile1");
}
public void CreateProfile2(IProfileExpression profile)
{
profile.SourceMemberNamingConvention = new PascalCaseNamingConvention();
profile.DestinationMemberNamingConvention = new LowerUnderscoreNamingConvention();
// this.CreateMap (not Mapper.CreateMap) statements that need your special conventions here
// equivalent to Mapper.CreateMap( ... ).WithProfile("Profile2");
}
если вы делаете это таким образом и не определяете одно и то же отображение в обоих профилях, я не думаю, что вам нужно что-либо, чтобы «заполнить пробел» из исходного вопроса, это уже должно быть настроено для выполнения правильная вещь.