Architecture Net

Пример удаленного объекта


Для нашего примера удаленного доступа мы изолируем наш объект Customers (Клиенты) от сборки Customer (Клиент). В папке примера Remoting находятся два решения. Одно представляет собой клиентскую часть программы, другое — серверную. Сначала нужно скомпоновать серверную часть приложения. При этом также создастся Customer.dll. Необходимо скопировать эту динамически подключаемую библиотеку (DLL) в папку Debug (Отладка) для решений Server (Сервер) и Client (Клиент). Нужно обратить внимание, что сначала запускается программа-сервер, которая после запуска переходит в режим ожидания клиентского запроса. После этого можно выполнить клиентскую часть приложения, которая активизирует объекты, существующие внутри сервера. Подробности программного кода клиента и сервера мы обсудим в нескольких последующих разделах.

Отметим, что нужно было внести два простых изменения в наш объект. Класс Customers (Клиенты) в проекте сервера — удаленный (с возможностью удаленного доступа), — для этого мы сделали его производным от MarshalByRefObject.

public _gc class Customers :
// класс сборщика мусора Клиенты:
public MarshalByRefObject, public ICustomer

CustomerListltem, который будет передаваться по значению, должен быть сделан преобразуемым в последовательную форму.

[Serializable]
// [Преобразуемый в последовательную форму]
public _value struct CustomerListltem
{
public:
int Customerld;
String *FirstName; // Строка
String *LastName; // Строка
String *EmailAddress; // Строка
};

CompEbook.ru Железо, дизайн, обучение и другие



Содержание раздела