如何在 FluentAssertions ShouldBeEquivalentTo() 中排除多个属性

How to exclude multiple properties in FluentAssertions ShouldBeEquivalentTo()

使用 FluentAssertions:
我可以使用 ShouldBeEquivalentTo.

排除单个 属性
x.ShouldBeEquivalentTo(y, opts => opts.Excluding(si => !si.PropertyInfo.CanWrite));

但是,如何在使用 ShouldBeEquivalentTo() 时 排除超过 1 属性 ?

你必须为此使用函数而不是表达式。

x.ShouldBeEquivalentTo(y, ExcludeProperties); 

private EquivalencyAssertionOptions<xx> ExcludeProperties(EquivalencyAssertionOptions<xx> options)
    {
            options.Excluding(t => t.CeOperator);
            options.Excluding(t => t.CeOperatorName);
            options.Excluding(t => t.Status);
            options.Excluding(t => t.IsOperational);
            return options;
    }

您不一定需要单独的方法。像这样流畅地链接多个调用。

x.ShouldBeEquivalentTo(y, opts => opts.Excluding(si => !si.PropertyInfo.CanWrite).Excluding(si => si.SomeOtherProperty));