2011-04-28 5 views
0

나는 웹 사이트에 검색 페이지를 만들려고하고 있으며 검색은 두 개의 모델과 각 모델이 많은 속성을 갖는 경우에 광범위 할 것입니다.Loop through T 모델 특성. 검색 빌드

일부 게시물에서 보았 듯이 일반적인 방법으로 반사판을 사용하는 방법이 있습니까? 나는 이것을 가리키는 방법에 대한 조언이나 조언이 필요하다. 고맙게 생각합니다.

답변

1

리플렉션을 사용하면 필요한 정보를 얻을 수 있습니다. 유형 T를 사용하는 경우 모든 공용 부동산을 얻으려면

typeof(T).GetProperties() 

을 (를) 사용할 수 있습니다. 필드, 메소드 등에서도 가능합니다. 검색을 생성하기 위해 메타 데이터가 더 필요하면 속성을 사용하여 속성 (또는 필드, 메소드 등)에 주석을 달 수 있습니다. 이렇게하면 시작할 수 있습니다. 세부 정보는 정확한 사용 사례에 따라 다릅니다.

1

자세한 정보를 제공 할 수 있습니까?

검색 목적은 무엇입니까? 나에게 30 초 버전을 주면 어디로 가는지 이해할 수있다.

RegEx 및 단어 형태소 분석을 사용 하시겠습니까?

어떤 종류의 값이 일치 항목으로 계산됩니까?

개체/모델의 속성 만 검색한다고 가정합니다. 권리?

모든 속성 또는 일부 속성 만보고 싶습니까?

속성에는 어떤 종류의 데이터가 저장되어 있습니까? (문자열, 바이트 [], ENUM 등)

브레인 스토밍 아이디어 :

무엇 하나 대신 수화 객체에서의 DB 서버 측 찾기 기능에 대한? 모든 객체를 메모리에로드 한 다음 DB에 반영하는 것보다 DB를 활용하는 것이 더 빠릅니다 (런타임시).

또한 모델 자체의 컨텍스트 내에서 검색을 지원하는 메서드를 작성할 수도 있습니다. 검색 규칙 집합을 표현식으로 전달한 다음 일치 항목을 찾습니다. 어떤 종류의 콜렉션 컨테이너가있는 경우 콜렉션의 모든 오브젝트에 대해 해당 레벨에서 검색을 실행할 수 있습니다.

리플렉션 코드가 필요하면 리플렉션을 통해 개체에 대한 많은 정보를 보여주는 코드를 작성했습니다. 나는 이것을 오래 전 (2009 년 12 월)에 썼다. 네가 원하는대로 할 지 모르겠다. 보세요. 그것이 당신을 위해 작동한다면, 그것을 사용하십시오! (Link)