2010-07-07 4 views
1

SmartClient 앱에서는 현재 PostSharp를 사용하여 자동 속성에 get/set 코드를 삽입하여 Dirty 상태 추적 및 INotifyPropertyChanged 이벤트를 구현합니다..Net 4 LinqToSql이있는 동적 개체?

우리는 종종 LinqToSql과 함께 이러한 비즈니스 개체를 사용합니다. 우리는 Postsharp에 대한 의존성을 없애고 싶습니다. 닷넷 4.0 ExpandoObject는 완벽 해 보입니다. 우리는 HasChanged() 구현을 위해 모든 속성에서 반복 속성을 사용하지 않고도 동적 속성을 추가하고 사용자 정의 get/set 코드를 추가 할 수 있습니다.

내 질문은 이것입니다. LinqToSql에서 동적 ExpandoObject의 인스턴스를 얻으려면 어떻게해야합니까? 가능한가요?

그렇지 않다면 달성 할 수있는 다른 방법이 있습니까? 우리는 기본적으로 각 50 ~ 100 개 특성을 가진 비즈니스 오브젝트가 있고, 반복적 수백 줄의 코드없이에서 INotifyPropertyChanged를 구현해야

+1

디자인시 모든 건물을 알고 있습니까? 다이나믹 타이핑보다 코드 생성기가 더 적합할까요? ExpandoObject는 봉인되어 상속을 배제합니다. –

+0

나는 당신이 옳다고 생각한다. – Andronicus

답변

0

지금이

  1. 프록시 개체에 대한 이동하는 방법은 세 가지가 있습니다에 대한처럼 보인다 예 성 동적 프록시
  2. 코드 생성 예. T4 템플릿
  3. 코드 직조 예. Postsharp

Postsharp는 defaukt 생성자를 사용하여 원하는 동작을 얻고 생성 된 코드의 유지 관리에 대해 걱정할 필요가 없으므로 좋은 방법입니다. POCO 엔티티에 속성을 추가하기 만하면됩니다.