Приложение Library Compiler генерирует безопасный с точки зрения типов API, когда вы создаете свой блок, если правильные опции выбраны.
Создайте проект Library Compiler.
Выберите .NET Assembly из списка Type.
Расширьте раздел Additional Runtime Settings.
В разделе Type-Safe API сделайте следующее:
Выберите Enable Type-Safe API.
В поле Interface assembly задайте местоположение блока интерфейса type-safe/WCF, который вы создали.
Выберите желаемый интерфейс из .NET interface выпадающее поле.
Если выпадающим является пробел, приложение Library Compiler, возможно, не могло найти любые интерфейсы.NET в блоке, который вы выбрали.
Задайте имя класса, который вы хотите, чтобы сгенерированный API перенес в поле Wrapped Class.
Оставьте незаполненное поле Namespace.
Разработайте проект путем нажатия кнопки Package.
Сгенерировать безопасный с точки зрения типов API с вашим компонентом с помощью mcc
, сделайте следующее:
Создайте компонент путем ввода этой команды от MATLAB®:
mcc -v -B 'dotnet:AddOneComp,Mechanism,3.5,private,local' addOne
Смотрите mcc
страница с описанием для получения дополнительной информации об опциях задана.
Сгенерируйте безопасный с точки зрения типов API путем ввода этой команды из MATLAB:
ntswrap -c AddOneComp.Mechanism -i IAddOne -a IAddOne.dll
где:
-c
задает полностью определенное имя пространства имен блока.NET, чтобы перенестись с безопасным с точки зрения типов API. Если блок ограничен по объему к пространству имен, задайте полное полностью определенное имя пространства имен (AddOneComp.Mechanism
в примере). Поскольку никакое пространство имен не задано ntswrap
, безопасный с точки зрения типов интерфейсный класс появляется в глобальном пространстве имен.
-i
задает имя интерфейса.NET, который задает безопасный с точки зрения типов API. Интерфейсное имя обычно снабжается префиксом I
.
-a
задает абсолютный или относительный путь к блоку, содержащему.NET интерфейс со статическим контролем типов, на который ссылается -i
переключатель.
Если блок, содержащий интерфейс IAddOne
.NET не находится в текущей папке, задайте полный путь.
Не все аргументы совместимы друг с другом. Смотрите ntswrap
для деталей обо всех опциях команды.