Почему свойство в .NET VB DLL будет отсутствовать при загрузке в C#?
Я пытаюсь поговорить с контроллером прибора на C# через библиотеку DLL .NET VB, предоставленную производителем в примере проекта. Код VB работает безупречно. Когда я прикрепляю DLL в качестве ссылки к своему проекту C#, ключевое свойство отсутствует. Все остальные свойства и методы отображаются так, как и ожидалось. Методы, которые появляются, работают в проекте C#. В Обозревателе объектов VB свойство определяется следующим образом:
ModbusTransaction(Byte) As Object
который ссылается на код:
Public ReadOnly Property ModbusTransaction(ByVal CommandType As Byte) Get Call _ModbusTransaction(CommandType) Return _TransactionSuccess End Get End Property
Это свойство используется в качестве метода в примере кода, поэтому я не знаю, почему оно не объявлено как таковое. Моя проблема в том, что я не могу выполнить это или знаю, как найти его из C#. Я использую VS 2013, Если это имеет значение.
Спасибо за любую помощь,
СМЗ
Что я уже пробовал:
Я пробовал методы из библиотеки DLL в моем проекте C#, и те, которые не требуют отсутствующего свойства (метода), работают должным образом.
E.F. Nijboer
Убедитесь, что платформа обоих vb.net и проекты c# совпадают (поэтому у них есть соответствующие языковые среды выполнения). Также проверьте, по-прежнему ли они по умолчанию используют "anycpu". Кроме того, я не уверен, что ByVal может вызвать эту проблему. Может быть, попробовать без него, чтобы увидеть, имеет ли он какой-либо эффект.