Dado el seguimiento de pila:¿Cómo es posible esta excepción del diccionario <TKey, TValue>?
MESSAGE: Value cannot be null.Parameter name: key
SOURCE: mscorlib
TARGETSITE: Void ThrowArgumentNullException(System.ExceptionArgument)
STACKTRACE:
at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
at System.Collections.Generic.Dictionary'2.FindEntry(TKey key)
at System.Collections.Generic.Dictionary'2.get_Item(TKey key)
at MyCompany.MAF.Agent.ServiceContracts.ConvertUtils.Convert(Dictionary'2 from) in D:\Development\MAF\Agent\MyCompany.MAF.Agent\ServiceContracts\ConvertUtils.cs:line 11
llego a la conclusión de que de alguna manera el siguiente bloque de código se ha recuperado un nulo desde la entrada de la colección de llaves diccionario. Sin embargo, el diccionario de entrada es una instancia de Dictionary<string, string>
. La implementación de Dictionary<string, string>
hace que esa condición sea imposible. Al agregar un elemento con una clave nula, se lanza una excepción.
internal static KeyValuePair<string, string>[] Convert(IDictionary<string, string> from)
{
List<KeyValuePair<string, string>> ret = new List<KeyValuePair<string, string>>();
foreach (string key in from.Keys)
ret.Add(new KeyValuePair<string, string>(key, from[key]));
return ret.ToArray();
}
Ya que realmente no responde su pregunta (mi mejor estimación es que está relacionada con el hilo)) pero su bucle es redundante from.ToArray() arrojará el mismo resultado –