我嘗試通過反射調用單例類中的函數。我收到以下異常:如何在c中使用反射來調用單例類中的函數#
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(...'與鍵的值相同..並且您不能在字典中有重複的鍵。這就是爲什麼你有這個錯誤 –