C# PropertyInfo.SetValue参数异常?

C# PropertyInfo.SetValue参数异常?,c#,reflection,C#,Reflection,我有以下代码。但是,它在SetValue上有一个运行时异常。什么可能导致错误 var _filter = new Filter(....); // Filter implemented IFilter ApplyFilter(_view.Name, x => x.Name); private void ApplyFilter<T>(T curr, Expression<Func<IFilter, T>> prev) { var expr =

我有以下代码。但是,它在
SetValue
上有一个运行时异常。什么可能导致错误

var _filter = new Filter(....); // Filter implemented IFilter
ApplyFilter(_view.Name, x => x.Name); 

private void ApplyFilter<T>(T curr, Expression<Func<IFilter, T>> prev) 
{
    var expr = (MemberExpression)prev.Body;
    var prop = (PropertyInfo)expr.Member;
    if (!EqualityComparer<T>.Default.Equals(curr, (T)_filter[prop.Name]))
    {
        prop.SetValue(_filter, curr, null); // Error
        ..... // do something on _filter
var_filter=新过滤器(..);//Filter实现的过滤器
ApplyFilter(_view.Name,x=>x.Name);
私有void ApplyFilter(T curr,Expression prev)
{
var expr=(MemberExpression)prev.Body;
var prop=(PropertyInfo)expr.Member;
如果(!EqualityComparer.Default.Equals(curr,(T)u filter[prop.Name]))
{
prop.SetValue(_filter,curr,null);//错误
..…//在_筛选器上执行某些操作
例外情况是:

System.ArgumentException was unhandled Message=Property set method not found. Source=mscorlib StackTrace: at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture) at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, Object[] index) at MyApp.ErrorLogPresenter.ApplyFilter[T](T curr, Expression`1 prev) in d:\....cs:line 50 System.ArgumentException未处理
Message=未找到属性集方法。 Source=mscorlib 堆栈跟踪: 位于System.Reflection.RuntimePropertyInfo.SetValue(对象对象对象、对象值、BindingFlags invokeAttr、绑定器、对象[]索引、CultureInfo区域性) 位于System.Reflection.RuntimePropertyInfo.SetValue(对象obj,对象值,对象[]索引) 在MyApp.ErrorLogPresenter.ApplyFilter[T](T curr,表达式'1 prev)的d:\..cs:50行 这通常只是意味着您使用的属性没有定义setter。请确保存在合适的setter,或者使用不同的方法来赋值


这通常只是意味着您正在使用的属性没有定义setter。请确保存在合适的setter,或者使用不同的方法分配值。

请也发布异常。忽略索引属性[]上的索引或尝试设置只有getter的属性…“找不到属性集方法”-听起来很清楚;这个属性有setter吗?我们能看到有问题的属性吗?@AK_u行引发异常不使用indexer?@MarcGravel非常感谢。我忘了接口没有定义setter。请也发布异常。忽略索引属性[]上的索引或者试图设置一个只有getter的属性…“找不到属性集方法”-听起来很清楚;这个属性有setter吗?我们能看到有问题的属性吗?@AK_u“行引发异常不使用索引器吗?@MarcGravel非常感谢。我忘了接口没有定义setter。
Message=Property set method not found.