Разработка распределенных приложений в Microsoft.NET Framework




Конфигурирование среды NET Remoting - часть 3


Программа при этом будет настроена как сервер и клиент Remoting одновременно.

Клиент, использующий удаленный объект, сначала должен настроить среду Remoting. После чего при создании объекта любого из перечисленных в файле конфигурации в разделе <client> классов будет создан посредник, связанный с соответствующим удаленным объектом.

using System; using System.Runtime.Remoting; using RemotingTest; public class Client { public static void Main(string[] args) { string config = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; Console.WriteLine(config); RemotingConfiguration.Configure(config); // Для объекта единственого вызова в следующей строчке будут // созданы посредники, конструктор самого объекта не вызывается TestService service = new RemotingTest.TestService(); // При удаленном вызове на сервере будет сконструирован новый объект Console.WriteLine(service.Sum(2, 2)); } }

Ниже приведен код самого маршализируемого по ссылке объекта. Конструктор и деструктор объекта выводят сообщения в консоль, чтобы продемонстрировать моменты создания и удаления объекта на сервере.

// TestService.cs using System; namespace RemotingTest { public class TestService : MarshalByRefObject { public TestService() { Console.WriteLine("[ctor]"); } ~TestService() { Console.WriteLine("[dtor]"); } public int Sum(int a, int b) { return a + b; } } }

Нижеследующий make файл позволяет собрать все приведенные выше файлы. Следует отметить, что в некоторых реализациях CLI для компиляции следует использовать ссылку на сборку System.Runtime.Remoting.dll. В .NET Framework 2.0 эта ссылка добавлена в стандартный файл параметров компилятора C# (csc.rsp).

makefile : Server.exe Client.exe Server.exe : Server.cs csc Server.cs Client.exe : Client.cs RemoteTestService.dll csc /r:RemoteTestService.dll Client.cs RemoteTestService.dll: TestService.cs csc /out:RemoteTestService.dll /t:library TestService.cs


Содержание  Назад  Вперед