동일한 컴퓨터에있는 두 개의 간단한 프로그램간에 원격 채널을 설정하려면 RemotingServices.Marshal
및 Activator.GetObject
을 사용하고 있습니다..NET Remoting에서 원격으로 목록을 원격으로 볼 수없는 이유는 무엇입니까?
public class IpcInterface : MarshalByRefObject
{
public int number = -1;
public string text = "default";
public List<String> strings;
}
// A simplification
나는 두 프로그램이 성공적으로 number
및 text
이 완전히 고유 한 값이 (확인)을 변경하기 때문에, 채널이 존재하고 통신이 가능하다는 것을 확인했습니다.
그래서 나는 즉시 strings
에 대해 동일한 작업을 시도했습니다.
하나의 프로그램에서 나는 strings.Add("1")
을 호출했습니다. 두 번째 프로그램에서 strings
의 내용을 읽으려고했습니다. 비어 있습니다.입니다. 더 많은 것은 무엇인지, 조사는 0
이었다. 에 계속 0
개의 오브젝트가있는 이유를 모르겠다. Stack<T>
과 Dictionary<T, K>
에 대해서도 같은 일이 발생하지만, 어떤 요소도 추가 할 수 없습니다. 일반적으로 참조 유형을 사용하여 이상한 일이 발생하지 않았는지 확인하기 위해 IPC 인터페이스 클래스에 StringBuilder
을 넣으려고 시도했으며 '상태'가 두 프로그램에서 값을 변경하여 성공적으로 유지 관리되었습니다.
질문 : 문자열 목록이 추가되지 않는 이유는 무엇이며 해결책은 무엇입니까?
나는 경험이있는 사람이 바로이 문제를 발견 할 수 있기를 바랍니다. 비슷한 질문에 대해 인터넷 검색을 시도했지만 유용한 결과를 얻지 못했습니다. 놀랍게도 나는 단지 "디버깅 .net 원격 투명한 프록시"인터넷 검색을위한 1 개의 좋은 링크가 있습니다. 그것은 두 번째 질문이기도합니다. 투명한 프록시 객체를 어떻게 디버깅 할 수 있습니까?
- 모든 개체가 올바르게 인스턴스화됩니다 (NullReferenceException은 없으며 사실 예외가 없음).
거룩한 *** 감사합니다. – Jason