MWArrayПосле создания удаленного компонента можно настроить консольный сервер и клиент с помощью MWArray API. Дополнительные сведения о выборе подходящего API для доступа см. в разделе Выбор способа доступа к сборке.
Некоторые причины, по которым вы можете использовать MWArray API вместо собственного .NET API:
Вы работаете с массивами структуры данных, которые не поддерживаются собственным API .NET.
Вы или ваши пользователи активно работают со многими типами данных MATLAB ®.
Вы или ваши пользователи знакомы и удобны в использовании MWArray API.
Сведения о доступе к компоненту с помощью собственного API .NET см. в разделе Доступ к удаленной сборке .NET с помощью собственного API .NET: Magic Square.
Серверное приложение размещает удаленный компонент, встроенный в «Создание удаленной сборки .NET». Можно также выполнить эти действия с помощью собственного API .NET, как описано в разделе Доступ к удаляемой сборке .NET с помощью собственного API .NET: Magic Square.
Создайте сервер с помощью файла проекта Microsoft ® Visual Studio ®MagicSquareServer\MagicSquareMWServer.csproj:
Изменение привязок для созданной сборки компонентов на MagicSquareComp\for_redistribution_files_only\MagicSquareComp.dll.
Выберите подходящую платформу сборки.
Выберите режим «Отладка» или «Выпуск».
Построить 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:
Выберите подходящую платформу сборки.
Выберите режим «Отладка» или «Выпуск».
Построить 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 должны появиться следующие выходные данные:
Magic square of order 4 162313 511108 97612 414151