MWArray
После создания удаляемого компонента можно настроить консольный сервер и клиент с помощью MWArray
API. Для получения дополнительной информации о выборе подходящего API для ваших потребностей в доступе см. раздел «Выбор доступа к сборке».
Некоторые причины, по которым вы можете использовать MWArray
API вместо собственного .NET API:
Вы работаете с массивами структуры данных, которые не поддерживает родной .NET API.
Вы или ваши пользователи активно работаете со многими MATLAB® типы данных.
Вы или ваши пользователи знакомы и удобны в использовании MWArray
API.
Для получения информации о доступе к компоненту с помощью native .NET API, смотрите Доступ к удаляемой сборке .NET Используя Native .NET API: Магический квадрат.
В серверном приложении размещен удаленный компонент, созданный в разделе «Создание удаляемой сборки .NET». Можно также выполнить эти шаги с помощью native .NET API, как описано в Access a Remotable .NET Assembly с помощью Native .NET API: Магический квадрат.
Создайте сервер с помощью Microsoft® Визуальная студия® файл проекта MagicSquareServer\MagicSquareMWServer.csproj
:
Измените ссылки для сгенерированной сборки компонента на MagicSquareComp\for_redistribution_files_only\MagicSquareComp.dll
.
Выберите соответствующую платформу сборки.
Выберите Debug или Release режим.
Создайте MagicSquareMWServer
проект.
Предоставьте файл строения для MagicSquareMWServer
.
Используйте код C # для сервера, расположенного в файле MagicSquareServer\MagicSquareServer.cs
:
using System; using System.Runtime.Remoting; namespace MagicSquareServer { class MagicSquareServer { static void Main(string[] args) { RemotingConfiguration.Configure (@"..\..\..\..\MagicSquareServer.exe.config"); Console.WriteLine("Magic Square Server started..."); Console.ReadLine(); } } }
Читает связанный файл строения, чтобы определить
Имя компонента, который он будет размещать
Протокол удаленного взаимодействия и форматирование сообщений для использования
Время аренды удаленного компонента
Сигнализирует о том, что сервер активен и ожидает ввода возврата каретки перед завершением.
Файл строения для MagicSquareServer
находится в файле MagicSquareServer\MagicSquareServer.exe.config
. Весь файл строения, записанный в XML, следующий:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.runtime.remoting> <application> <service> <wellknown mode="SingleCall" type="MagicSquareComp.MagicSquareClass, MagicSquareComp" objectUri="MagicSquareClass.remote" /> </service> <lifetime leaseTime= "5M" renewOnCallTime="2M" leaseManagerPollTime="10S" /> <channels> <channel ref="tcp" port="1234"> <serverProviders> <formatter ref="binary" typeFilterLevel="Full" /> </serverProviders> </channel> </channels> </application> <debug loadTypes="true"/> </system.runtime.remoting> </configuration>
Этот код задает:
Режим, в котором будет получен доступ к удаленному компоненту - в этом случае режим одиночного вызова
Имя удаленного компонента, сборки компонента и URI объекта (унифицированный идентификатор ресурса), используемый для доступа к удаленному компоненту
Время аренды удаленного компонента
Протокол удаленного взаимодействия (TCP/IP
) и номер порта
Форматтер сообщений (binary
) и разрешения для канала связи (full
доверие)
Отладка сервера опции
Клиентское приложение, выполняемое в отдельном процессе, обращается к удаленному компоненту, работающему в ранее созданном серверном приложении. (См. Раздел «Кодирование и создание приложения сервера хостинга» и файла строения.
Затем создайте удаленный клиент с помощью файла проекта Microsoft Visual Studio MagicSquareClient\MagicSquareMWClient.csproj
. Этот файл ссылается на обе сборки преобразования разделяемых данных
и сгенерированную сборку интерфейса компонента matlabroot
\ toolbox\dotnetbuilder\bin\win64\v4.0\MWArray.dllMagicSquareComp\for_redistribution_files_only\IMagicSquareComp
.
Чтобы создать удаленный клиент с помощью Microsoft Visual Studio:
Выберите соответствующую платформу сборки.
Выберите Debug или Release режим.
Создайте MagicSquareMWClient
проект.
Предоставьте файл строения для MagicSquareMWServer
.
Используйте код C # для клиента, расположенного в файле MagicSquareClient\MagicSquareClient.cs
. Код клиента показан здесь:
using System; using System.Configuration; using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Http; using System.Collections; using System.Runtime.Serialization.Formatters; using System.Runtime.Remoting.Channels.Tcp; using MathWorks.MATLAB.NET.Utility; using MathWorks.MATLAB.NET.Arrays; using IMagicSquareComp; namespace MagicSquareClient { class MagicSquareClient { static void Main(string[] args) { try { RemotingConfiguration.Configure (@"MagicSquareClient.exe.config"); String urlServer= ConfigurationSettings.AppSettings["MagicSquareServer"]; IMagicSquareClass magicSquareComp= (IMagicSquareClass)Activator.GetObject (typeof(IMagicSquareClass), urlServer); // Get user specified command line arguments or set default double arraySize= (0 != args.Length) ? Double.Parse(args[0]) : 4; // Compute the magic square and print the result MWNumericArray magicSquare= (MWNumericArray)magicSquareComp.makesquare (arraySize); Console.WriteLine("Magic square of order {0}\n\n{1}", arraySize, magicSquare); } catch (Exception exception) { Console.WriteLine(exception.Message); } Console.ReadLine(); } } }
Этот код делает следующее:
Клиент считывает связанный файл строения, чтобы получить имя и местоположение удаляемого компонента.
Клиент создает экземпляры удаляемого объекта с помощью статического Activator.GetObject
метод
С этого момента удаленный клиент вызывает методы на удаляемом компоненте так же, как и локальный метод компонента.
Файл строения для магического квадратного клиента находится в файле MagicSquareClient\MagicSquareClient.exe.config
. Файл строения, записанный в XML, показан здесь:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="MagicSquareServer" value="tcp://localhost:1234/MagicSquareClass.remote"/> </appSettings> <system.runtime.remoting> <application> <channels> <channel name="MagicSquareChannel" ref="tcp" port="0"> <clientProviders> <formatter ref="binary" /> </clientProviders> <serverProviders> <formatter ref="binary" typeFilterLevel="Full" /> </serverProviders> </channel> </channels> </application> </system.runtime.remoting> </configuration>
Этот код задает:
Имя удаленного сервера компонентов и URI удаленного компонента (унифицированный идентификатор ресурса)
Протокол удаленного взаимодействия (TCP/IP
) и номер порта
Форматтер сообщений (binary
) и разрешения для канала связи (full
доверие)
Запуск сервера осуществляется следующим образом:
Откройте DOS или UNIX® командное окно и cd
на MagicSquareServer\bin\x86\v4.0\Debug
.
Выполняйте MagicSquareServer.exe
. Вы увидите сообщение:
Magic Square Server started...
Запустите клиент, выполнив следующие действия:
Откройте командное окно DOS или UNIX и cd
на MagicSquareClient\bin\x86\v4.0\Debug
.
Выполняйте MagicSquareClient.exe
. После инициализации MATLAB Runtime, вы увидите следующий выход:
Magic square of order 4 162313 511108 97612 414151