Я создаю приложение с C#, которое может считывать данные элемента с SQL Server и подталкивать его к системе масштабирования под названием «SLP-V Ishida Retail Scales». У них есть интерфейс «SLP-V Automation Interface», который позволяет пользовательским программам взаимодействовать со своими системами. Это примечание со страницы справки в SLP-V:Как взаимодействовать с другими программами с OLE Automation в C#?
Интерфейс автоматизации (также известный как интерфейс COM (общая объектная модель) »предоставляет метод для пользовательских программ для доступа к функциям SLP-V. Наиболее распространенным приложением для этого является использование VB Script для автоматизации операций SLP-V, таких как импорт файлов хоста. Однако интерфейс автоматизации может использоваться из любой среды программирования, которая поддерживает автоматизацию (COM), и это предпочтительный метод включения функций SLP-V в приложения конечного пользователя.
В этом разделе представлена ссылка на методы и свойства объекта автоматизации SLP-V и включает в себя некоторые примеры программ.
SLP-V объекта автоматизации
Имя объекта автоматизации SLP-V является "Ishida.Slp.Scripting.CommonApi" и файл библиотеки тип "SlpScripting.tlb".
Мой вопрос в том, что язык C# позволяет нам взаимодействовать с другими программами с использованием OLE Automation? И если да, то как мне взаимодействовать с моей программой? Я имею в виду вызов их метода. Потому что я не могу добавить SlpScripting.tlb
в качестве ссылки. Это говорит
Ссылка на «SLP Scripting Interface» не может быть добавлен экспортировался из сборки .NET библиотеки типов ActiveX «SlpScripting.tlb» и не может быть добавлен в качестве ссылки. Добавьте ссылку на сборку .NET вместо
И я искал Google об этом, но я не нашел ответа.
Наконец нашел решение у меня нет, чтобы добавить ссылку на C#, а не только с помощью:
System.Type objType = System.Type.GetTypeFromProgID("The name of progID that you want to call");
dynamic comObject = System.Activator.CreateInstance(objType);
- Пример ProgID = «Ishida.Slp.Scripting.CommonApi ».
А потом просто вызовите функцию/метод, который существует в этом объекте, например:
comObject.LoginToHost("localhost", 8085, username, pass);
У них действительно нет ничего в этой справочной странице о доступе к их системе из .NET-кода? Поскольку эта ошибка указывает на то, что их материал также написан в .NET, и система не хочет, чтобы обойти все через два набора оболочек (перевести .NET -> COM, а затем перевести COM -> .NET) –
Я прочитал справочную документацию, но не упоминается, как получить доступ к их системе из кода C# .NET. Если я создаю эту программу на Visual Basic, можно ли более легко взаимодействовать с системой SLP? Потому что в нем упоминается «ScaleLink Pro поддерживает автоматизацию ActiveX (также известную как автоматизация OLE), что позволяет контролировать операции ScaleLink Pro внешними программами, включая программы, написанные на языках сценариев, таких как Visual Basic и Java-скрипт». –