Actualmente estoy escribiendo una interfaz para permitir que las aplicaciones envíen datos de excepción a un depósito central para fines de soporte. Estoy en un dilema sobre cómo pasar datos adicionales contextual:IDictionary <cadena, cadena> o NameValueCollection
public interface IExceptionNotifier
{
void Notify(Exception ex, NameValueCollection context); //this
void Notify(Exception ex, IDictionary<string, string> context); //or this
}
menudo me he encontrado es una posición similar cuando se crean las búsquedas. Ignorando si el concepto de notificador de excepción es bueno o no, ¿es mejor utilizar un IDictionary<string, string>
o NameValueCollection
? ¿Por qué escogerías uno sobre el otro?
¿Podría ampliar "bajo control de lo que realmente obtendrá de su interlocutor"? ¿Es la posibilidad de que una persona que llama el envío de claves duplicadas el problema? Supongo que no entiendo por qué evitarías un diccionario si se trata de serialización. –
@JeffBridgman: Esto fue hace casi diez años, realmente no recuerdo lo que quise decir;) Supongo que se trata de obtener un objeto de una clase específica (es decir, con ciertas restricciones como soporte de serialización), o de obtener * cualquier cosa * con una cierta interfaz. Por ejemplo, la implementación de IDictionary puede no admitir la serialización o algunos métodos, mientras que NameValueCollection es una implementación fija, por lo que depende de lo que quiera hacer con el contexto. Tenga en cuenta que hay varias otras preguntas sobre esto en SO con discusiones interesantes. – OregonGhost