C# 嵌套映射配置(其他配置中的现有配置)

C# 嵌套映射配置(其他配置中的现有配置),c#,asp.net-core,automapper,C#,Asp.net Core,Automapper,我正在处理的这个项目有太多的嵌套对象,每个对象都有不同的映射(基于上下文)。 例如,如果我将外部类映射到内部类,则内部类映射的行为方式必须与直接映射内部类不同。 内部类(或外部类,实际上是所有类)的映射由一个方法检索,该方法根据接收到的参数返回其MapperConfiguration。这样,我可以为每个类编写一次MapperConfiguration。问题是,我找不到在另一个MapperConfiguration中调用此方法的方法,“混合”配置,就像级联效应一样。 我尝试使用配置文件,但它使我为

我正在处理的这个项目有太多的嵌套对象,每个对象都有不同的映射(基于上下文)。

例如,如果我将外部类映射到内部类,则内部类映射的行为方式必须与直接映射内部类不同。

内部类(或外部类,实际上是所有类)的映射由一个方法检索,该方法根据接收到的参数返回其MapperConfiguration。这样,我可以为每个类编写一次MapperConfiguration。问题是,我找不到在另一个MapperConfiguration中调用此方法的方法,“混合”配置,就像级联效应一样。

我尝试使用配置文件,但它使我为所有需要此内部类映射的配置文件编写“CreateMap”,或者我必须在外部类的MapperConfiguration中添加内部类及其子类的配置文件。这将很难实现,因为对象太复杂了。有没有办法使用automapper实现这种“级联效应”?


编辑:如果我说问题的核心是什么,也许我可以更清楚一些:我想知道是否有可能从MapperConfiguration中获取所有配置文件(或映射配置表达式),以便我可以将它们添加到另一个配置中。

您的场景有点混乱。一方面,您希望仅提供基于“根”对象的特定映射,因此内部对象以在“根”对象上下文中定义的特定方式进行映射。但另一方面,您希望重用映射/配置,这与提供单个映射的目标相矛盾。现在是什么,相同或不同的映射取决于上下文?请将您的问题包括您拥有的(示例)类、您想要使用的映射、您想要得到的结果以及您遇到的问题。如果问题如此复杂,那么可能是业务逻辑问题,而不是隐藏在某些AM配置中?无论如何,请尝试
MapperConfigurationExpression
。这允许您在不同的
MapperConfiguration
s之间重用配置。