C# 属性更改|调用成员名称|模糊匹配交换
我在运行时遇到以下错误:AmbiguousMatchException找到了不明确的匹配 有人知道原因是什么吗 班 截图 堆栈跟踪 System.Reflection.AmbiguousMatchException是aufgetreten HResult=-2147475171消息=MehrdeutigeÜBEREINSTIG gefunden。 Source=mscorlib StackTrace: bei System.RuntimeType.GetPropertyImplString名称,BindingFlags bindingAttr,Binder Binder,类型returnType,类型[] 类型、参数修改器[]修饰符InnerException: 问题是,HtUserGroupSetup中的Permissions属性隐藏了基类HtUserGroup的Permissions属性C# 属性更改|调用成员名称|模糊匹配交换,c#,wpf,reflection,callermembername,C#,Wpf,Reflection,Callermembername,我在运行时遇到以下错误:AmbiguousMatchException找到了不明确的匹配 有人知道原因是什么吗 班 截图 堆栈跟踪 System.Reflection.AmbiguousMatchException是aufgetreten HResult=-2147475171消息=MehrdeutigeÜBEREINSTIG gefunden。 Source=mscorlib StackTrace: bei System.RuntimeType.GetPropertyImplString名称,
重命名HtUserGroupSetup中的Permissions属性解决了问题。您应该发布整个异常,包括stack@OfirWinegarten请添加整个类。您需要添加更多上下文。另外,避免发布截图。改为张贴代码/文本。最有可能的错误发生在PropertyChanged事件的处理程序中,因此与CallerMemberName无关。但如果没有完整的堆栈跟踪,很难说现在发布的内容是不完整的,因为只包含最后一次调用。确保类中没有与CurrentUserGroupSetup和CurrentUserGroupSetup同名但大小写不同的属性。
public class MyTrimmedClass : Control, INotifyPropertyChanged
{
public HtUserGroupSetup CurrentUserGroupSetup
{
get { return _CurrentUserGroupSetup; }
set
{
if (_CurrentUserGroupSetup != value)
{
_CurrentUserGroupSetup = value;
OnPropertyChanged();
}
}
}
private HtUserGroupSetup _CurrentUserGroupSetup;
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
public class HtUserGroupSetup : HtUserGroup
{
public new List<HtPermissionSetup> Permissions
{
get { return _Permissions; }
set
{
if (_Permissions != value)
{
_Permissions = value;
OnPropertyChanged("Permissions");
}
}
}
private List<HtPermissionSetup> _Permissions = new List<HtPermissionSetup>();
public HtUserGroupSetup(HtUserGroup userGroup)
{
Name = userGroup.Name;
Description = userGroup.Description;
}
}
public class HtUserGroup : HtBaseServiceData
{
private string _Name = "";
[DataMember]
public string Name
{
get { return _Name; }
set
{
if (_Name != value)
{
_Name = value;
OnPropertyChanged("Name");
}
}
}
private string _Description = "";
[DataMember]
public string Description
{
get { return _Description; }
set
{
if (_Description != value)
{
_Description = value;
OnPropertyChanged("Description");
}
}
}
private List<HtPermission> _Permissions = new List<HtPermission>();
[DataMember]
public List<HtPermission> Permissions
{
get { return _Permissions; }
set
{
if (_Permissions != value)
{
_Permissions = value;
OnPropertyChanged("Permissions");
}
}
}
}
public abstract class HtBaseServiceData : INotifyPropertyChanged
{
protected void OnPropertyChanged(string property)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(property));
}
public event PropertyChangedEventHandler PropertyChanged;
}
public new List<HtPermissionSetup> Permissions