【发布时间】:2017-09-29 14:07:37
【问题描述】:
我尝试通过反射调用单例类中的函数。我得到以下异常:
System.Reflection.TargetInvocationException:调用的目标已抛出异常。 ---> System.ArgumentException: 已存在具有相同键的条目。
类和调用方法放在下面。有人知道我做错了什么吗?
public class SetStatus{
private static readonly SetStatus instance = new SetStatus();
protected SortedDictionary<int, string> resources = new SortedDictionary<int, string>();
public static SetStatus Instance
{
get
{
return instance;
}
}
protected override void LoadResources()
{
resources.Add(0, MyApp.Resources.Localization.Approved);
resources.Add(1, MyApp.Resources.Localization.Rejected);
resources.Add(2, MyApp.Resources.Localization.Revoked);
}
public SetStatus()
{
LoadResources();
}
public SortedDictionary<int, string> Resources
{
get
{
return resources;
}
}
}
void ResetStaticEnums()
{
string methodName = "LoadResources";
MethodInfo method = typeof(SetStatus).GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
method.Invoke(SetStatus.Instance, Type.EmptyTypes);
}
【问题讨论】:
-
3 次调用
resources.Add(...与 key 具有相同的值。而且字典中不能有重复的键。这就是您出现此错误的原因
标签: c#