2010-03-02 6 views

답변

15

수정 : 세터를 internal으로 지정하십시오.

이것은 여전히 ​​어셈블리 내에서 설정할 수 있지만 다른 어셈블리에서 사용하는 어셈블리 내에있는 데이터 개체에 사용할 때 좋은 트릭입니다. 어셈블리를 사용하는 어셈블리는 속성을 설정할 수 없으므로, 다양한 시리얼 라이저가 가능합니다.

+0

Protected는 클래스 외부에서 속성을 설정할 수 없기 때문에 비 직렬화가 여전히 실패합니다. –

+0

Thanks Slugster !!! 답장을 원하시면 ... – BreakHead

+0

@ Dan - 제 편집을 확인하십시오. 나는 이걸 전에 만난 줄 알았지 만 돌아가서 어떻게 처리했는지 확인해야했다. 당신은 맞습니다 - 나는 처음에 * 보호 *를 시도했지만 작동하지 않는다는 것을 알았으므로 대신 * 내부 *를 사용했습니다. – slugster

4

WCF는 직렬화 된 표현 (종종 XML)으로 개체의 인스턴스를 만들어야하며 속성에 설정자가 없으면 값을 할당 할 수 없습니다. 객체는 클라이언트와 서버 사이에서 전송되지 않지만 직렬화 된 표현만으로 객체가 각 끝에 재구성되어야합니다.

2

귀하의 질문은 좀 애매하지만 나는 이것이 당신이 찾고있는 해답 같아요

당신이 속성 값을 설정하지 않고 객체를 재수 할 수 없기 때문에 직렬화는, 읽기 - 쓰기 속성에 대해 작동합니다 기본 . 속성을 읽기 전용으로 사용하려면 속성을 추가하는 것보다 직접 직렬화 인터페이스를 구현해야합니다.

DataContract serialization을 사용할 경우, 으로 생각하면 가장 좋은 방법은 ISerializable을 구현하고 직접 메서드를 구현하는 것입니다.

관련 문제