C#을 사용하여 기본 속성/값 매핑 클래스를 코딩합니다.표현식을 사용하여 특정 멤버를 대상으로 지정하는 방법
개체의 특정 멤버를 대상으로 지정하고 람다 식으로 해당 멤버와 관련된 다양한 작업을 지정할 수 있기를 원합니다.
아이디어는 그래서 같은 정적 메소드 것을 사용하여 새 매핑을 구성하는 것입니다 :이 예에서
var myMapping = Mapping<TObject>.New(o => o.MyProperty).Read(GetString);
을, TObject의 누구의 재산 내가 매핑 할 객체의 유형이며, 새로운 (...) TObject의 'MyProperty'멤버를 대상으로하고 Read (...)는 'MyProperty'와 동일한 유형의 값을 반환하는 표현식을 정의합니다.
- 어떤 멤버가와 연관된 :
그래서 우리가 지금 알고있는 '매핑'개체가 있습니다.
- 해당 멤버에 대한 값을 얻는 방법.
그러면 'Mapper'의 상속자까지 해당 값으로 해당 멤버를 설정하는 방법에 대한 논리를 남길 수 있습니다. 예 : 특정 유형의 매핑은 유효성이있는 경우 MyProperty 만 설정하여 읽은 값을 '유효성을 검사'하려고 할 수 있습니다.
당신은 다음과 같이 당신의 매핑을 사용합니다 :
'myTObject는'형식의 인스턴스 'TObject의를'입니다myMapping.Read(myTObject);
.
RhinoMock과 같이 특정 멤버를 대상으로하고 옵션을 설정할 수있는 라이브러리를 조롱하는 경우 이러한 종류의 구현이 일반적으로 발생합니다.
누군가가 이걸 달성하는 방법에 대한 예를 제공 할 수 있습니까, 아니면 적어도 내 머리가 구름에 있는지 말해 줄 수 있습니까?
그것은 전혀 아니다 컴파일 할 때 수행 할 작업을 명확하게 지정하고 실행 시간에 수행 할 작업을 정의합니다. 바로 지금,'var myMapping = (Func) (o => o.MyProperty);'그렇다면'var s = myMapping (someTOject); –
AakashM
필요한 종류의 물건입니까? http://stackoverflow.com/questions/8990231/how-can-i-create-a-dynamic-select-on-an-ienumerablet-at-runtime/8990465#8990465 – AlanT