감사 로깅 (누가 언제 어떤 멤버를 변경했는지)에 대한 데이터 구조를 "심도 비교"하고 있습니다. 나는 이것을 위해 리플렉션을 사용하여 구조를 반복하고 비교합니다. 나는 사전을 포함하는 사람들과 문제를 쳤다."Deep compare"사전
회원이 사전임을 typeof(IDictionary).IsAssignableFrom(memberType)
으로 감지 할 수 있습니다. 내 계획은 두 개체에 존재하는 키를 수집하고 그 개체에 대한 재귀를 계속 수행합니다. 그러나 IDictionary.Keys
은 LINQ로 확장되지 않은 ICollection
입니다. 열쇠의 종류를 알지 못하면 어떻게 이것을 할 수 있습니까?
아마도이 방법은 차선책입니다 (저는 Generics/Reflection 콤보에 익숙하지 않습니다). 다른 방법으로해야합니까?
LINQ와 어떤 관련이 있습니까? – Seb
@DavidM : 템플릿 버전 만, IEnumerable은 아닙니다. 제 질문에'memberType'은'Dictionary'입니다. 그건'IDictionary'에 할당 할 수 있습니다. 그러나 제가 아는 한, IDictionary '을 할 수 없습니다. 제네릭이 아닌 'IDictionary'. –
carlpett