using System;
using System.Linq;
using System.Reflection;
sealed class Test {
public static void Main() {
var explicitProperties =
from prop in
typeof(SomeClass)
.GetProperties(
BindingFlags.NonPublic
| BindingFlags.Instance
)
let getAccessor = prop.GetGetMethod(true)
where getAccessor.IsFinal && getAccessor.IsPrivate
select prop;
foreach (var p in explicitProperties)
Console.WriteLine(p.Name);
}
}
sealed class SomeClass : ISomeInterface {
string ISomeInterface.SomeProperty { get; set; }
}
interface ISomeInterface {
string SomeProperty { get; set; }
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlJlZmxlY3Rpb247CgpzZWFsZWQgY2xhc3MgVGVzdCB7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpIAl7CgkJdmFyIGV4cGxpY2l0UHJvcGVydGllcyA9CgkJCWZyb20gcHJvcCBpbgoJCQkgICB0eXBlb2YoU29tZUNsYXNzKQoJCQkgICAuR2V0UHJvcGVydGllcygKCQkJICAgCQlCaW5kaW5nRmxhZ3MuTm9uUHVibGljCgkJCSAgIAkJfCBCaW5kaW5nRmxhZ3MuSW5zdGFuY2UKCQkgICAJCSkKCSAgIAkJbGV0IGdldEFjY2Vzc29yID0gcHJvcC5HZXRHZXRNZXRob2QodHJ1ZSkKCSAgIAkJd2hlcmUgZ2V0QWNjZXNzb3IuSXNGaW5hbCAmJiBnZXRBY2Nlc3Nvci5Jc1ByaXZhdGUKCSAgIAkJc2VsZWN0IHByb3A7CgkgICAJCQogICAJCWZvcmVhY2ggKHZhciBwIGluIGV4cGxpY2l0UHJvcGVydGllcykKICAgCQkJQ29uc29sZS5Xcml0ZUxpbmUocC5OYW1lKTsKCX0KfQoKc2VhbGVkIGNsYXNzIFNvbWVDbGFzcyA6IElTb21lSW50ZXJmYWNlIHsKCXN0cmluZyBJU29tZUludGVyZmFjZS5Tb21lUHJvcGVydHkgeyBnZXQ7IHNldDsgfQp9CgppbnRlcmZhY2UgSVNvbWVJbnRlcmZhY2UgewoJc3RyaW5nIFNvbWVQcm9wZXJ0eSB7IGdldDsgc2V0OyB9Cn0=