Creative Commons License

Community

공지/뉴스
지식공유
질문/답변
자료실
자유로운 글
방명록

공유를 넘어 교류로... 제가 알리는 말씀 및 사이트 이용자들이 함게 참여하는 커뮤니케이션 공간입니다.

.

질문/답변

개발 중 막히셨나요?? 여기 먼저 경험한 개발자들의 답변을 부탁드려보세요~ 단, 질문의 내용은 되도록이면 아주(?) 상세히 해 주셔야 합니다

리모팅간의 데이터 통신에서...

작성자 리못
작성일 2008-07-21 오후 8:22:18,    조회수 : 2480

닷넷 리모팅에서 원격 서버간에 데이터를 받아올려면

I시리얼라아져블 -_-;; (빠른대화소통을 위해)을 상속받아 구현한 객체만 가능한가요?
 
Ex) DataSet은 되고 DataReader는 안되나요?
 
원격지에서는 한번도 테스트 못해봤는데 셋팅이 참 거시기해서 -_-;;
 
로컬에서 테스트했을땐 되더라고요?(원래 로컬에선 컴파일시 에러 없이 잘되는것인가요???)
 
갑자기 생각났는데 예전에 리모팅은 ISerializable  을 구현한 객체만 통신할수 있다는 걸 어디서 주서 들은적있는 기억이살짝 나서요... 근데 IDatareader형식이 리턴되길래....( -_- 그냥 로컬에서는 되는거 같은데 )
 
물리적으로 떨어져서 테스트 하면 안되나욤? 넘 황당한 질문인가 -0-;;
 
답변부탁드려욤.

리모팅에 데이터를 그냥 아무대나 주고 받고 가능한건가요?
 

∵Commented by 박종명 at 2008-07-22 오전 11:32:45  
리모팅에서 원격 객체는 System.MarshalByRefObject 이어야 합니다.
(MarshalByRefObject는 프록시를 사용하여 메시지를 교환하는 방식으로 응용 프로그램 도 메인 경계를 넘어 통신하는 개체의 기본 클래스입니다)

닷넷 2.0에서는 DbDataReader 객체가 System.MarshalByRefObject 상속받고 있습니다.
즉 SqlDataReader는 DbDataReader 을 상속하고 있기 때문에 원격 전달이 가능할 것입니다.
∵Commented by 몬난아 at 2008-07-22 오후 3:40:49  
답변 감사 드립니다.-0- 그런데 답변을보고요

Dataset을 찾아봤는데 기존에 dataset도 잘되었엇는데
데이터셋은 MarshalByRefObject 상속 받은거 같지 않던데요...
아직 기초 내공이 부족하여 ㅠㅠ
∵Commented by 박종명 at 2008-07-22 오후 4:06:10  
중요한 것인 객체가 마샬링이 가능해야 한다는 것입니다.
즉 타입이 serializable로 선언되거나 MarshalByRefObject로부터 상속되어야 합니다.
Serializable관련 msdn 을 살펴 보시기 바랍니다.
아래는 msdn 설명문 중 일부 입니다.

serialization 아키텍처는 MarshalByRefObject를 확장하는 개체 형식을 Object를 확장하는 형식과 동일하게 처리합니다. 이러한 형식은 SerializableAttribute로 표시할 수 있으며 ISerializable 인터페이스를 다른 개체 형식으로 구현할 수 있습니다. 해당 개체의 상태는 캡처되어 스트림에 유지됩니다.

이러한 형식을 System.Runtime.Remoting을 통해 사용하고 있는 경우 원격 인프라는 일반 serialization을 획득하고 대신에 프록시를 MarshalByRefObject에 serialize하는 서로게이트를 제공합니다. 서로게이트는 특정 형식의 개체를 serialize 및 deserialize하는 방법에 대해 알고 있는 도우미입니다. 프록시는 대부분의 경우에 사용자가 볼 수 없으며 ObjRef 형식을 가집니다.

∵Commented by 몬난아 at 2008-07-22 오후 7:55:47  
아 감사합니다. 아하하하...

답변해주신거 블로그에 남기겠습니다 감사합니다.
이름
비밀번호
홈페이지
UT <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요