2016-09-18 2 views
-3

Я использую класс Activator для создания новых экземпляров приложения третьей стороной (с ++ .exe)C# Activator.CreateInstance - как создать второй экземпляр существующего объекта?

Определение класса Activator является: Содержит методы для создания типов объектов локально или удаленно, или получить ссылки на существующие удаленные объекты.

Если я создаю несколько экземпляров своего приложения, я хотел бы, чтобы каждый экземпляр моего приложения ссылался на отдельный экземпляр стороннего приложения. Что происходит, заключается в том, что каждый экземпляр моего приложения ссылается на тот же экземпляр стороннего приложения (третий экземпляр создается при запуске первого экземпляра моего приложения.)

Как заставить стороннее приложение создать отдельный экземпляр для каждого экземпляра моего приложения?

+0

Что вы подразумеваете под «вторым экземпляром уже существующего объекта» ??? –

+0

Используйте [AutoMapper] (http://automapper.org/) – Kalten

+0

Если вы используете Activator.CreateInstance для создания экземпляра COM-объекта, а затем хотите создать второй экземпляр этого COM-объекта. –

ответ

1

На самом деле класс Activator определяется как «Содержит методы для создания типов объектов локально или удаленно», но это плохо написано, и было бы более точным сказать «Содержит метод создания объектов на основе предоставленной информации о типе». Если вы используете удаленные объекты и «Удаленное выполнение .NET» для связывания прокси-процессов в процессе с удаленными объектами, тогда решение о том, когда удаленный объект создается, выполняется удаленным процессом, а не вызывающим процессом. Если он определяет экземпляр singleton, то все вызовы, использующие Activator для привязки к нему, будут привязываться к экземпляру, выставленному singleton; иначе вызовы будут создавать новый экземпляр в удаленном процессе каждый раз.

+0

Спасибо. Поэтому мне нужно искать свойство (надеюсь) на удаленном компьютере, чтобы указать, что я хотел бы, чтобы каждый новый экземпляр создавался каждый раз - или это было бы слишком легко надеяться? –

+0

На [этой странице] (https://msdn.microsoft.com/en-us/library/ff647428.aspx) выполните поиск «Существует два режима активации для объектов, активированных сервером: Singletonand SingleCall». и читайте оттуда. Образец показывает, как делать то, что вы хотите. [Здесь] (http://www.codeproject.com/Articles/3198/Remoting-Singleton) - еще один пример. –

+0

Да, это все. Сторонний разработчик приложений подтверждает singleton. Спасибо за вашу помощь. –

Смежные вопросы