Приложение 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 для деталей обо всех опциях команды.