问题描述
我通过使用 FluentAssertions 中的 .Should().BeEquivalentTo(..) 来检查实例的自定义克隆的等效性。 现在有一些属性被标记为过时并且不再被克隆。有没有办法排除这些属性?
.Excluding(b => b.SelectedMemberInfo.MemberType.GetCustomAttributesData()
.Any(ca => ca.AttributeType == typeof(ObsoleteAttribute)))
解决方法
问题在于 MemberType
为您提供字段或属性公开的对象类型,而不是属性或字段本身(.NET MemberInfo
、PropertyInfo
或 { {1}})。您可以使用这样一个相当丑陋的结构来解决这个问题:
FieldInfo