내 응용 프로그램에는 EventHadler 유형의 이벤트가 포함 된 clss가 있으며이 클래스는 다른 응용 프로그램에서 원격 처리해야합니다 (해당 이벤트를 처리해야 함). 이 EventHandler의 최초의 파라미터는, 오브젝트 o (이벤트가 방아쇠 된 오브젝트)입니다. 이 매개 변수는 다른 응용 프로그램에서 의미가 있습니까? 이 사건들이 전화 할거야? 복잡한 질문에 대해 미안하지만 내 생각을 분명하게 표현할 수는 없습니다.EventHandler 및 remoting
0
A
답변
1
누군가가 sender
매개 변수를 사용할 것인지 여부에 달려 있습니다.
그렇다면 개체가 무엇인지에 따라 달라집니다. 개체가있는 응용 프로그램 도메인에서만 중요한 경우 개체가 MarshalByRefObject
에서 파생되었는지 확인하여 클라이언트의 호출을 서버의 인스턴스로 다시 원격 처리 할 수 있도록해야합니다.
값으로 sender
을 전송하는 것이 합리적이라면 직렬화 가능해야합니다.
즉, 리모팅 이벤트는 일반적으로 나쁜 생각입니다. 더 나은 솔루션은 클라이언트와 서버간에 공유 할 수있는 인터페이스로 어셈블리를 만드는 것입니다. 이 인터페이스에는 클라이언트 (기본 클래스가 MarshalByRefObject
인)에서 구현 될 메소드가 들어 있으며 해당 구현의 인스턴스가 서비스로 전달됩니다. 서비스는이 참조를 저장하고 "이벤트"를 발생시키고 자 할 때마다 인터페이스 구현에 대한 호출을 수행합니다.
WCF은 클라이언트가 서버에 의해 이벤트를 통지 받기를 원할 때 callback interface을 사용하여이 패턴을 정확히 선택한 분산 호출에 대한 이벤트의 개념을 폐지합니다.
WCF를 선호하는 Remoting이 더 이상 사용되지 않습니다. –