Вы можете достичь этого, получив PropertyInfo для объявления типа свойства, простой метод расширения может быть ...
public static class Extensions
{
public static MethodInfo GetSetMethodOnDeclaringType(this PropertyInfo propertyInfo)
{
var methodInfo = propertyInfo.GetSetMethod(true);
return methodInfo ?? propertyInfo
.DeclaringType
.GetProperty(propertyInfo.Name)
.GetSetMethod(true);
}
}
тогда ваш код звонка ...
class Program
{
static void Main(string[] args)
{
MethodInfo setMethod = typeof(Foo)
.GetProperty("Prop")
.GetSetMethodOnDeclaringType();
if (setMethod == null)
Console.WriteLine("NULL");
else
Console.WriteLine(setMethod.ToString());
Console.ReadKey();
}
}