1.서버 어셈블리
- 원격 객체를 갖는 일반 어셈블리를 호스트한다.
1) Channel을 등록한다.
System.Runtime.Remoting.Channels.Http.HttpChannel c = new HttpChannel(9113);
ChannelServices.RegisterChannel(c);
2) WKO 형식을 등록한다.
RemotingConfiguration.RegisterWellKnownServiceType(typeof(Class Type), "알려진 이름", WellKnownObjectMode.Singleton);
- config 파일을 이용한 서버 어셈블리의 등록
- RemotingConfiguration.Config(<<Config파일 네임>>)
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown mode = "Singleton" <<서버 등록 모드>> type ="SimpleRemotingAsm.RemoteMessageObject,
DistrubuteApp" <<Class의 풀 네임, 파일 이름(dll)>> objectUri="RemoteMessageObject.soap"/> <<Uri>>
</service>
<channels>
<channel ref ="http" port="32469"/>
</channels>
</application>
</system.runtime.remoting>
</configuration>
2. 클라이언트 어셈블리
1) Channel의 생성
HttpChannel c = new HttpChannel();
ChannelServices.RegisterChannel(c);
2) 원격 WKO 형식의 Proxy를 가지고 온다.
object remoteObject = Activator.GetObject(typeof(Class Type), "uri");
3) 원격 객체를 사용한다. : SingleCell형식의 경우, 이때에 객체가 생성된다.
- config 파일을 이용한 클라이언트 어셈블리에서의 Remote 객체 사용
<configuration>
<system.runtime.remoting>
<application>
<client displayName ="SimpleRemoteObjectClient">
<wellknown
type ="Class의 FullName, 파일이름"
url ="fullURI" />
</client>
<channels>
<channel ref ="http"/>
</channels>
</application>
</system.runtime.remoting>
</configuration>