두 개의 서로 다른 응용 프로그램이 있으며 둘 사이에서 통신하기 위해 GroupLab Networking을 사용하고 있습니다. 아이디어는 공유 사전이 있고이 공유 사전에서 어떤 것이 바뀌면 다른 응용 프로그램이 알림을받습니다. 알림 부분이 작동합니다. 여기에 문제가있다. 첫 번째 응용 프로그램에는 다음 코드가 있습니다. TouchInfo
가 struct
입니다C# 응용 프로그램 간의 직렬화 된 개체 읽기
TouchInfo t = new TouchInfo();
int.TryParse(txtXCoord.Text, out t.X);
int.TryParse(txtYCoord.Text, out t.Y);
this.sharedDictionary1["/pointOne"] = t;
. 공유 사전에 저장된이 오브젝트는 두 응용 프로그램에서 모두 액세스 할 수 있습니다. 코드는 다음과 같습니다 :이 코드는 개체를 만든 응용 프로그램에서 작동
TouchInfo val = (TouchInfo)this.sharedDictionary1["/pointOne"]
동안. 나는 초에 다음과 같은 오류가 발생합니다 :
{Unserializable object: problem: System.Runtime.Serialization.SerializationException: Unable to find assembly 'NetworkingTestProgramOne, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
내가 직렬화도를 직렬화 프로그램의 어셈블리 정보를 저장하기 때문에이 문제가 실현. 그러나 나는 다른 프로그램에서 의사 소통을하기 위해 그것을 필요로한다. 이 작업을 어떻게 수행합니까?
안녕하세요, 전 본 적이 없습니다. 이것은 두 프로젝트의 프로젝트 속성에 들어가서 같은 "어셈블리 이름"이지만 다른 네임 스페이스를 갖도록 변경하는 것을 의미합니까? 공유 클래스 만 포함하고 어셈블리 이름을 같은 것으로 설정하는 세 번째 프로젝트 (클래스 라이브러리 프로젝트) 만들기? – Aishwar
(aip.cd.aish에) "가변 구조체 사용을 피하려고"- 오, 공개 필드도 피하십시오 ('out t.X'는 public 필드입니다) –
신경 쓰지 마세요. 알았다. 나는 새로운 클래스 라이브러리 프로젝트를 만들고 출력 dll을 가져 와서 두 프로젝트에 추가했습니다. – Aishwar