У меня есть две службы, работающие в одном и том же процессе, размещающие одни и те же классы, на разных IP-портах..Net Remoting Calling Context
Предполагается, что созданные экземпляры классов будут работать против разных баз данных в зависимости от того, какой порт был вызван.
Можно ли получить некоторую информацию «владельца» в конструкторе моих классов, которые являются MarshalByRefObjects?
Ссылка на Сервис, TcpCannel или некоторые произвольные значения. Все будет в порядке, я в отчаянии.
Осветление (я надеюсь): В моей Main() У меня есть
ServicesToRun = new ServiceBase[] {
new BatchServer("ServerA"),
new BatchServer("ServerB")};
и в ExecuteService() в моей реализации ServiceBase у меня есть:
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(RmtObject), "RmtObject",
WellKnownObjectMode.Singleton);
на стороне клиента я создаю такой объект:
(RmtObject)Activator.GetObject(typeof(RmtObject), theURI, WellKnownObjectMode.Singleton);
Когда метод i выполнен на RmtObject I необходимо знать, в RmtObject, если он принадлежит ServerA или ServerB.
Вместо этого я мог бы использовать WellKnownObjectMode.SingleCall, если это упростит ситуацию.
Вы можете уточнить свой вопрос? Я не понимаю эту проблему. – leppie
Вы попробовали это? http://stackoverflow.com/questions/527676/identifying-the-client-during-a-net-remoting-invocation – chandmk
Спасибо @ user6130. Реализация моего SinkProvider решила его. Извините, я не могу отметить комментарий в качестве ответа. – idstam