После того, как доступный удаленно компонент был создан, можно настроить серверное приложение и клиент, использующий нативный API.NET. Для получения дополнительной информации о выборе правильного API для ваших потребностей доступа смотрите, Сравнивают MWArray и Нативный API.NET для Доступных удаленно блоков.
Некоторые причины вы можете использовать нативный API.NET вместо MWArray API:
Вы хотите передать аргументы и возвращаемые значения с помощью стандартных типов.NET, и вы или ваши пользователи не работаете экстенсивно с типами данных, характерными для MATLAB®.
Вы хотите получить доступ к своему компоненту от клиентской машины без установленной версии MATLAB.
Для получения информации о доступе к вашему компоненту с помощью MWArray API, смотрите доступ к Доступному удаленно блоку.NET Используя API MWArray.
Серверное приложение разместит удаленный компонент, который вы встроили, Создают Доступный удаленно блок.NET.
Клиентское приложение, запускающееся в отдельном процессе, получит доступ к удаленному компоненту, размещенному серверным приложением. Создайте сервер с Microsoft® Visual Studio® файл проекта MagicSquareServer\MagicSquareServer.csproj:
Измените ссылку для сгенерированного блока компонента к MagicSquareComp\for_redistribution_files_only\MagicSquareCompNative.dll.
Выберите соответствующую платформу сборки.
Выберите режим Debug или Release.
Создайте MagicSquareServer проект.
Предоставьте конфигурационный файл для MagicSquareServer.
Код C# для сервера находится в файле MagicSquareServer\MagicSquareServer.cs. 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="MagicSquareCompNative.MagicSquareClass,
MagicSquareCompNative"
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\MagicSquareClient.csproj. Создать удаленный клиент, использующий Microsoft Visual Studio:
Измените ссылку для сгенерированного блока компонента к MagicSquareComp\for_redistribution_files_only\MagicSquareCompNative.dll.
Измените ссылку для сгенерированного интерфейсного блока к MagicSquareComp\for_redistribution_files_only\IMagicSquareCompNative.dll.
Выберите соответствующую платформу сборки.
Выберите режим Debug или Release.
Создайте MagicSquareClient проект.
Предоставьте конфигурационный файл для MagicSquareServer.
Код C# для клиента находится в файле MagicSquareClient\MagicSquareClient.cs.
Этот код делает следующее:
Клиент читает связанный конфигурационный файл, чтобы завоевать репутацию и местоположение доступного удаленно компонента.
Клиент инстанцирует доступного удаленно объекта с помощью статического 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 Element(0,0)= 16 Element(0,1)= 2 Element(0,2)= 3 Element(0,3)= 13 Element(1,0)= 5 Element(1,1)= 11 Element(1,2)= 10 Element(1,3)= 8 Element(2,0)= 9 Element(2,1)= 7 Element(2,2)= 6 Element(2,3)= 12 Element(3,0)= 4 Element(3,1)= 14 Element(3,2)= 15 Element(3,3)= 1