调用MethodInfo.MakeGenericMethod时出现这个关键错误是什么意思?我今天从一些旧的动态转换代码中得到了这个错误(我已经更改了最后一行并省略了堆栈跟踪的其余部分):Itemhasalreadybeenadded。字典中的键:'Int32Count[Object](System.Collections.Generic.IEnumerable`1[System.Object])'添加的键:'Int32Count[Object](System.Collections.Generic.IEnumerable`1[System.对象])'--->System.ArgumentException:项目已经被添加。字典中的键:'Int32Count[Object](System.Collections.Generic.IEnumerable`1[System.Object])'添加的键:'Int32Count[Object](System.Collections.Generic.IEnumerable`1[System.Object])'`1[System.Object])'atSystem.Reflection.CerHashtable`2.Insert(K[]keys,V[]values,Int32&count,Kkey,Vvalue)atSystem.Reflection.CerHashtable`2.在System.RuntimeType.RuntimeTypeCache.GetGenericMethodInfo(RuntimeMethodHandlegenericMethod)在System.RuntimeType.GetMethodBase(RuntimeTypeHandlereflectedTypeHandle,RuntimeMethodHandlemethodHandle)在System.Reflection.RuntimeMethodInfo.MakeGenericMethod(Type[]methodInstantiation)在MyNamespace.CommunicationExtensions.BuildMessage[T](Tobj)全类publicstaticclassCommunicationExtensions{静态只读对象lockobj=newobject();publicstaticboolCanBuildMessage(thisTobj)whereT:class{returnobj!=null&&(MessageFactory.MessageBuilders.ContainsKey(obj.GetType()));}publicstaticstringBuildMessage(thisTobj){lock(lockobj){Delegated;vartype=obj.GetType();如果(MessageFactory.MessageBuilders.TryGetValue(type,outd)){varcastMethod=typeof(CommunicationExtensions).GetMethod("Cast").MakeGenericMethod(type);varcastedObject=castMethod.Invoke(null,newobject[]{obj});将d.DynamicInvoke(castedObject)作为字符串返回;}}返回空值;}publicstaticTCast(objecto){return(T)o;MessageFactory.MessageBuilders是一个Dictionary
