У меня возникла проблема с одиночным классом, который я подвергаю удалению через удаленный доступ. На моем сервере у меня есть:
TcpChannel channel = new TcpChannel( Settings.Default.RemotingPort );
ChannelServices.RegisterChannel( channel, false );
RemotingConfiguration.RegisterWellKnownServiceType(
typeof( RemotableObject ), "RemotableObject",
WellKnownObjectMode.Singleton );
RemotableObject - это одноэлементный объект, который наследует MarshalByRefObject.
Мой клиент подключается к нему через:
remoteObject = (RemotableObject)Activator.GetObject(
typeof( RemotableObject ),
string.Format( "tcp://{0}:{1}/RemotableObject", serverIP, serverPort ) );
Все работает отлично, поскольку удаленный доступ идет, но когда я обращаюсь к объекту singleton в моем сервере, например:
int someValue = RemotableObject.Instance.SomeDynamicValue;
Он обращается к другому экземпляру, чем клиенты. Я также проверил, что частный конструктор в RemotableObject дважды попадает во время отладки.
Я могу получить желаемое поведение, если я получаю экземпляр RemotableObject через удаленный доступ к моему серверному коду, но есть ли способ, с помощью которого я могу получить доступ к тому же объекту, что и мои клиенты с сервера, без лишних служебных данных?