나는 이것이 가능한 것처럼 보이는 것보다 훨씬 간단하게이 작업을 수행 할 수있을 것이라고 생각했습니다.개체 그래프 검색
객체 그래프에서 특정 유형의 모든 인스턴스를 가져올 수있는 가장 효율적인 방법이 필요합니다.
리플렉션을 사용하여이 유형의 인스턴스를 찾고 다른 모든 복합 유형 및 컬렉션을 계속 찾는 객체 속성을 통해 작업을 시작했습니다. 그것은 많은 일뿐만 아니라 누군가가 과거에해야 할 일의 종류처럼 느껴지기 시작했습니다. 따라서 작업량과 테스트가 많이 필요하기 전에 프레임 워크 내에서 빠른 승리를 놓치고 있는지, 또는 이런 종류의 작업을 수행하기위한 라이브러리에 대한 권장 사항이 있는지 묻습니다.
왜 이것을하고 싶습니까? 다른 유형의 파생 유형이 있습니다. 이 유형은 일반적인 특성을 가지고 있으며 더 중요한 것은 오류를 식별하는 특정 오류 인 HasErrors입니다. 이 유형은 모델 구축에 사용됩니다. 각 모델은 다릅니다. 어떤 단순하고 얕은 일부 복잡하고 깊은. 각 복합 노드는 일반적으로이 유형에서 파생되는 모음 또는 사용자 정의 유형입니다. 이 모든 HasErrors 속성을 검사하는 모든 인스턴스를 빠르게 탐색하는 방법이 필요합니다. true의 모든 인스턴스는 모델에 오류가 있음을 나타냅니다.
Model
CustomerId (int)
CustomerDetails : MyType
Name (string)
DoB (DateTime)
Addresses (Collection<Address : MyType>)
[Line1 (string)
Line2 (string)]
바라건대 이런 종류의 설명.
interface IComponent
{
IEnumerable<IComponent> Components { get; }
}
을 한 후 전체 개체 그래프를 걸어이 인터페이스를 사용 : 당신이 당신의 유형으로 구성 전체 개체 그래프를 통과 할 경우
나만의 유형입니까? 그것은 당신의 복합 구조입니까? –
임의의 유형의 임의의 그래프를 탐색 할 계획이라면 - 이것이 작업 부하 일 것입니다 (다른 것들과 순환 참조를 피하는 것을 포함하여). 진정한 질문은 다시 정의하고, 작업을보다 단순하게 만드는 방법입니다. – mfeingold
@Martin 두 지점 모두 예. 인스턴스에서이 함수를 수행해야하는 기본 클래스 메서드가 있습니다.찾고있는 유형의 인스턴스 속성과 속성입니다. – voiddog