Регистрация объекта _instances_ вместо _types_ с удаленным взаимодействием .NET?

StackOverflow https://stackoverflow.com/questions/412760

  •  03-07-2019
  •  | 
  •  

Вопрос

Есть кое-что, чего я не понимаю .NET Remoting. Ну, на самом деле две вещи:

<Ол>
  • Почему акцент делается на классы, которые наследуют от MarshalByRef вместо интерфейсов, как в оригинальном стиле COM (который мне понравился)?

  • Почему удаленное взаимодействие .NET всегда заставляет вас эффективно создавать какой-то пул объектов вместо того, чтобы связывать конкретные экземпляры с URL-адресом?

  • Код сервера:

    RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemotingTypes.Server), "MyURL", WellKnownObjectMode.Singleton);
    

    Код клиента:

    RemotingTypes.Server myInstance = new RemotingTypes.Server();
    

    Но предположим, я хочу создать " Сервер " сам экземпляр, а затем просто связать его с конечной точкой?

    <*>

    Что теперь? Как я могу связать "myInstance"? с URL-адресом "MyURL"

    Это было полезно?

    Решение

    Проблема с ответом Никда: я хотел знать, как связать уже созданный экземпляр с URL-адресом, а не как заставить удаленное взаимодействие .NET сделать это для меня (какой-то созданный мной экземпляр, который не имеет значения по умолчанию) конструктор, например).

    Я надеялся, что будет какой-то эпический ответ, объясняющий «философию» за удаленным взаимодействием .NET и почему он неразрывно связан с системой типов ...

    Вместо этого я заключил, что просто: а) Это потому, что удаленное взаимодействие .NET - отстой. Не используйте его б) Вместо этого используйте WCF

    Другие советы

    Я не могу по-настоящему обратиться к пунктам 1 и 2, так как у меня нет опыта работы с COM и я не понимаю 2, но чтобы ответить на ваш конкретный последний вопрос, если вы используете класс system.Activator, вы можете сделать это:

    RemotingTypes.Server  myInstance = (RemotingTypes.Server) Activator.GetObject(typeof(RemotingTypes.Server), MyUrl);
    

    Это означает, что вы должны связать его во время сборки, но это все на стороне клиента.

    См. мой похожий вопрос .

    scroll top