현재 내 새 프로젝트를 설정하고 있는데 모든 ViewModel 클래스가 INotifyPropertyChanged를 지원하고 모든 속성을 직접 처리 할 필요가 없다는 것을 어떻게 달성 할 수 있었는지 궁금합니다.T4 코드 생성을 통한 자동 INotifyPropertyChanged 구현?
AOP 프레임 워크를 살펴 보았지만 프로젝트가 다른 종속성으로 인해 날려 버릴 것이라고 생각합니다.
그래서 T4를 사용하여 속성 구현을 생성하는 방법에 대해 생각했습니다.
설정은 다음과 같습니다. ViewModel 클래스에 속성 배경 변수 만 선언하고 T4를 사용하여 속성 구현을 생성합니다.
예를 들어이 내 뷰 모델이 될 것입니다 :
public partial class ViewModel
{
private string p_SomeProperty;
}
그런 다음 T4 소스 파일 가서 "P_"라는 멤버 선언에 대한보고이 같은 파일을 생성 할 :
public partial class ViewModel
{
public string SomeProperty
{
get
{
return p_SomeProperty;
}
set
{
p_SomeProperty= value;
NotifyPropertyChanged("SomeProperty");
}
}
}
을 이 접근법에는 몇 가지 장점이 있지만 실제로 작동하는지 확실하지 않습니다. 그래서 StackOverflow에 아이디어를 게시하고 여기에 대한 피드백을 얻고 좀 더 좋고/더 쉽고/더 안전하게 할 수있는 조언을하기를 원했습니다.
나는이 질문 때문에 나는 단지 그것을봤을 때까지 나는 T4가 뭔지 전혀 몰랐다. 나는 이것에 대해 더 이상 말하지 않는다고 믿을 수 없다! – BFree
나도. 나는 오래된 C# 전 처리기 스레드 (http://stackoverflow.com/questions/986404/does-a-c-preprocessing-tool-exist)에서 왔습니다. 도. – lo5
또한보십시오 http://stackoverflow.com/questions/1315621/implementing-inotifypropertychanged-does-a-better-way-exist –