현재 응용 프로그램이 지원을 위해 예외 데이터를 중앙 리포지토리에 보낼 수 있도록 인터페이스를 작성하고 있습니다. 나는 여분의 문맥 데이터를 전달하는 방법에 대한 곤경에있어 : IDictionary <string, string> 또는 NameValueCollection
public interface IExceptionNotifier
{
void Notify(Exception ex, NameValueCollection context); //this
void Notify(Exception ex, IDictionary<string, string> context); //or this
}
나는 종종 조회를 만들 때 자신이 비슷한 위치입니다 발견했습니다. 예외 알림 개념이 좋은지 여부를 무시하면 IDictionary<string, string>
또는 NameValueCollection
을 사용하는 것이 가장 좋습니다. 왜 다른 하나를 골라야합니까?
"귀하가 실제로 귀하의 발신자에게서 얻을 수있는 것의 통제하에"확장 할 수 있습니까? 발신자가 중복 키를 전송할 가능성이 있습니까? 필자는 직렬화가 관련되어 있다면 사전을 피하는 이유를 잘 모르는 것 같습니다. –
@JeffBridgman : 이것은 거의 10 년 전이었습니다. 실제로 의미하는 바를 기억하지 못합니다.) 특정 클래스 (예 : 직렬화 지원과 같은 특정 제약 조건)의 객체를 가져 오는 것이거나 특정 인터페이스. 예를 들어, IDictionary 구현은 직렬화 또는 일부 메소드를 지원하지 않을 수 있지만 NameValueCollection은 고정 구현이므로 컨텍스트에서 수행하려는 작업에 따라 다릅니다. 이것에 관한 몇 가지 다른 질문이 있습니다. 흥미로운 토론이 있습니다. – OregonGhost