http://msdn.microsoft.com/en-us/library/dd468057.aspx에서 나는 변경 추적 프록시를 갖고 싶은 모든 탐색 속성이 public
이고 virtual
이어야한다고 읽었습니다. 내가 이해 한대로 CLR은 내 POCO의 하위 클래스를 동적으로 만들고 요청 된 동작을 제공하는 속성을 다시 구현합니다.프록시를 만들려면 탐색 속성을 공개로 설정해야하는 이유는 무엇입니까?
나는이 속성이 virtual
이어야하고, protected
이상의 액세스 가능 성이 있어야한다고 가정합니다. 그러나, 내가 assemby 내에서 편의를 위해 이것들을 사용하고 싶지만 그것들을 드러내고 싶지 않다면 나는 그것들이 public
이 아니길 바란다. 두 가지 질문이 생깁니다.
(무슨 일이 일어나고 있는지에 대한 이해를 위해) 왜 런타임은 속성
public
보다는protected
또는internal
할 필요합니까?(내 실제 상황에서) 탐색 속성을 숨길 수 있지만 변경 내용 추적 동작이 남아있는 해결 방법이 있습니까?
나는 보호 해 봤다고 맹세했지만, 작동하지 않았다. 내가 다시 시도한 후 다시 돌아올거야 – Martijn
나는 POCO 생성기로 시도했다. 컬렉션의 설정자에게 특히 유용합니다. –
작동하지 않는 특별한 이유는 Danny가 말한 것처럼 어셈블리 외부의 내부 가상 속성을 재정의 할 수 없다는 것입니다. 속성을 내부로 표시하여 원하는 결과를 얻을 수 있습니다. –