Solidworks API C#/VB.net устанавливает свойство Enum

Solidworks eDrawings API перечисляет следующие

Свойство EnableFeature (IEModelViewControl)

Visual Basic (использование)

 Dim instance As IEModelViewControl
 Dim feature As EMVEnableFeatures
 Dim value As System.Boolean

 instance.EnableFeature(feature) = value

 value = instance.EnableFeature(feature)

Solidworks предоставляет «пример» решения (C#.NET), для которого ниже приведены элементы управления.

this.eDrawingControl1 = new eDrawingHostControl.eDrawingControl();

Заглянув в пространство имен eDrawingHost.eDrawingControl, мы увидим

 public EModelViewControl eDrawingControlWrapper { get; }

Так что я бы подумал

eDrawingControl1.eDrawingControlWrapper.EnableFeature(feature) = true;

будет работать, но вместо этого я получаю

Не вызываемый член «IEModelViewControl.EnableFeature[EMVEnableFeatures]» не может использоваться как метод.

В качестве доказательства экземпляр в порядке и работает правильно, что-то вроде

eDrawingControl1.eDrawingControlWrapper.Save(@"filePath", false,"");

отлично работает.

Я неправильно понимаю синтаксис С# для установки такого свойства (enum)?


person Cody G    schedule 15.04.2019    source источник
comment
VB.Net позволяет передавать параметры свойствам, а С# — нет.   -  person Crowcoder    schedule 15.04.2019
comment
Ошибка указывает на то, что у вас есть свойство без параметра, например: .EnableFeature = true; Свойство применяется к экземпляру объекта. Метод сохранения у вас есть экземпляр: eDrawingControl1.eDrawingControlWrapper   -  person jdweng    schedule 15.04.2019


Ответы (1)


Похоже, их оболочка использует именованный индексатор, чего нельзя сделать в C#. Однако вы можете использовать его из С#:

eDrawingControl1.eDrawingControlWrapper.EnableFeature[feature] = true;
person CodeCaster    schedule 15.04.2019
comment
Спасибо! Клянусь, я пробовал это, но то, что я делал в прошлый раз, было, по-видимому, не этим. - person Cody G; 15.04.2019