Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用automapper忽略未使用的属性_C#_Visual Studio 2010_Automapper - Fatal编程技术网

C# 使用automapper忽略未使用的属性

C# 使用automapper忽略未使用的属性,c#,visual-studio-2010,automapper,C#,Visual Studio 2010,Automapper,我有一个相当大的物体,有很多属性 我正在使用Automapper从网格映射到属性 只有少数属性需要映射,其余属性必须忽略,因为它们是稍后使用的,而不是在映射时使用的 是否有一种方法可以“忽略”所有这些属性,或者我需要为每个属性编写一个显式的“忽略”——请参阅下面的代码。我希望能够“.IgnoreAllNotUsed”而不是一个接一个地忽略。这可能吗 该类继承自另一个类,但大多数属性位于实际类本身 您可以使用此扩展方法: public static void ForAllUnmappedMemb

我有一个相当大的物体,有很多属性

我正在使用Automapper从网格映射到属性

只有少数属性需要映射,其余属性必须忽略,因为它们是稍后使用的,而不是在映射时使用的

是否有一种方法可以“忽略”所有这些属性,或者我需要为每个属性编写一个显式的“忽略”——请参阅下面的代码。我希望能够“.IgnoreAllNotUsed”而不是一个接一个地忽略。这可能吗

该类继承自另一个类,但大多数属性位于实际类本身


您可以使用此扩展方法:

public static void ForAllUnmappedMembers<TSource, TDestination>(
    this IMappingExpression<TSource, TDestination> mapping, 
    Action<IMemberConfigurationExpression<TSource>> memberOptions)
{
    var typeMap = Mapper.FindTypeMapFor<TSource, TDestination>();
    foreach(var memberName in typeMap.GetUnmappedPropertyNames())
        mapping.ForMember(memberName, memberOptions);
}
所有未映射成员的公共静态无效(
这个IMappingExpression映射,
操作(可选)
{
var typeMap=Mapper.FindTypeMapFor();
foreach(typeMap.GetUnmappedPropertyNames()中的变量memberName)
mapping.formMember(memberName、memberOptions);
}
像这样使用它:

Mapper.CreateMap<Source, Destination>()
      .ForMember(...)
      .ForAllUnmappedMembers(o => o.Ignore());
Mapper.CreateMap()
.FORMEBER(…)
.forallunappedmembers(o=>o.Ignore());

我还没有测试过,但应该可以用

只需忽略所有属性,然后指定FormMember即可。下面是一个例子:

var mapping = Mapper.CreateMap<Source, Destination>();
mapping.ForAllMembers(opt=>opt.Ignore());
mapping.ForMember(...)
       .ForMember(...);
var-mapping=Mapper.CreateMap();
mapping.ForAllMembers(opt=>opt.Ignore());
mapping.ForMember(…)
.FORMEBER(…);