@@ -1575,17 +1575,12 @@ private static MemberInfo GetMemberInfoFromLambda<TMember>(Expression<Func<TClas
1575
1575
{
1576
1576
var memberInfo2 = typeof ( TClass ) . GetProperty (
1577
1577
memberInfo . Name ,
1578
- BindingFlags . Instance |
1579
- BindingFlags . Public |
1580
- BindingFlags . NonPublic ) ;
1578
+ BindingFlags . Instance | BindingFlags . Public | BindingFlags . NonPublic ) ;
1581
1579
1582
1580
// Handle explicit interface implementations.
1583
- if ( memberInfo2 == null &&
1584
- memberInfo . DeclaringType . IsInterface )
1581
+ if ( memberInfo2 == null && memberInfo . DeclaringType . IsInterface )
1585
1582
{
1586
- memberInfo2 = ResolveExplicitProperty (
1587
- memberInfo ,
1588
- typeof ( TClass ) ) ;
1583
+ memberInfo2 = ResolveExplicitProperty ( memberInfo , typeof ( TClass ) ) ;
1589
1584
}
1590
1585
1591
1586
memberInfo = memberInfo2 ;
@@ -1607,9 +1602,7 @@ private static string GetMemberNameFromLambda<TMember>(Expression<Func<TClass, T
1607
1602
return GetMemberInfoFromLambda ( memberLambda ) . Name ;
1608
1603
}
1609
1604
1610
- private static PropertyInfo ResolveExplicitProperty (
1611
- MemberInfo interfaceMemberInfo ,
1612
- Type targetType )
1605
+ private static PropertyInfo ResolveExplicitProperty ( MemberInfo interfaceMemberInfo , Type targetType )
1613
1606
{
1614
1607
var interfaceType = interfaceMemberInfo . DeclaringType ;
1615
1608
@@ -1618,11 +1611,9 @@ private static PropertyInfo ResolveExplicitProperty(
1618
1611
// implemented property name.
1619
1612
var interfaceMap = targetType . GetInterfaceMap ( interfaceType ) ;
1620
1613
1621
- var interfacePropertyAccessors =
1622
- ( ( PropertyInfo ) interfaceMemberInfo ) . GetAccessors ( true ) ;
1614
+ var interfacePropertyAccessors = ( ( PropertyInfo ) interfaceMemberInfo ) . GetAccessors ( true ) ;
1623
1615
1624
- var targetPropertyAccessors =
1625
- interfacePropertyAccessors . Select ( accessor =>
1616
+ var targetPropertyAccessors = interfacePropertyAccessors . Select ( accessor =>
1626
1617
{
1627
1618
var index = Array . IndexOf < MethodInfo > ( interfaceMap . InterfaceMethods , accessor ) ;
1628
1619
@@ -1631,10 +1622,7 @@ private static PropertyInfo ResolveExplicitProperty(
1631
1622
1632
1623
// Binding must be done by accessor methods because interface
1633
1624
// maps only map accessor methods and do not map properties.
1634
- return targetType . GetProperties (
1635
- BindingFlags . Instance |
1636
- BindingFlags . Public |
1637
- BindingFlags . NonPublic )
1625
+ return targetType . GetProperties ( BindingFlags . Instance | BindingFlags . Public | BindingFlags . NonPublic )
1638
1626
. Single ( propertyInfo =>
1639
1627
{
1640
1628
var accessors = propertyInfo . GetAccessors ( true ) ;
@@ -1646,9 +1634,7 @@ private static PropertyInfo ResolveExplicitProperty(
1646
1634
1647
1635
for ( var i = 0 ; i < accessors . Length ; ++ i )
1648
1636
{
1649
- if ( Array . IndexOf < MethodInfo > (
1650
- targetPropertyAccessors ,
1651
- accessors [ i ] ) < 0 )
1637
+ if ( ! targetPropertyAccessors . Contains ( accessors [ i ] ) )
1652
1638
{
1653
1639
return false ;
1654
1640
}
0 commit comments