微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法从 FluentAssertions 中的 .BeEquivalentTo(..) 中排除标有 [Obsolete] 属性的属性?

如何解决有没有办法从 FluentAssertions 中的 .BeEquivalentTo(..) 中排除标有 [Obsolete] 属性的属性?

我通过使用 FluentAssertions 中的 .Should().BeEquivalentTo(..) 来检查实例的自定义克隆的等效性。 现在有一些属性标记为过时并且不再被克隆。有没有办法排除这些属性

我试图获取属性属性但失败了。

.Excluding(b => b.SelectedMemberInfo.MemberType.GetCustomAttributesData()
                  .Any(ca => ca.AttributeType == typeof(ObsoleteAttribute)))

解决方法

问题在于 MemberType 为您提供字段或属性公开的对象类型,而不是属性或字段本身(.NET MemberInfoPropertyInfo 或 { {1}})。您可以使用这样一个相当丑陋的结构来解决这个问题:

FieldInfo

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。