수정할 수없는 속성을 가진 변경할 수없는 클래스와이 클래스에서 파생되는 변경 가능한 클래스를 만드는 데 관심이 있습니다. 이러한 객체는 데이터베이스 레코드를 나타내는 간단한 데이터 객체이므로 속성의 불변 값만 갖게됩니다.C#에서 변경할 수없는 객체에서 파생 된 변경 가능한 객체를 만드는 방법은 무엇입니까?
내 목표는 데이터베이스 값을 기반으로 속성을 설정하지만 이러한 개체의 읽기 전용 버전을 다시 응용 프로그램에 전달하여 데이터 액세스 레이어에서 개체의 변경 가능한 버전을 정상적으로 만들도록하는 것입니다. (개발자가 실제로 원할 경우 코드가 명시 적으로 변경할 수없는 객체를 다시 가변적 인 것으로 캐스팅 할 수 있다는 사실을 확인합니다.)
다음과 같은 방법으로이 uglily를 수행 할 수 있습니다. getter 및 setter와 가변 클래스에 대한 공공 새로운 세터를 갖는 :
public class ImmutableClient {
private int _clientId;
public int getClientId() { return _clientId; }
protected void setClientId(int clientId) { _clientId = clientId; }
}
public class Client : ImmutableClient {
public new void setClientId(int clientId) { base.setClientId(clientId); }
}
나는 가능하면 자동 속성을 사용하는 것을 선호 것 - 그들은 디버깅 할 때 훨씬 좋네요입니다. 그 외에도, 코드 생성기에서 온 것이며 결코 보지 않을 것이므로 코드가 어떻게 보이는지는별로 신경 쓰지 않습니다.
아이디어가 있으십니까?
완벽합니다. 나는 인터페이스에 대해 생각조차하지 않은 수업에서 너무 죽었습니다.하지만 그건 내 시나리오에서 절대적으로 효과가있었습니다. 고맙습니다. –