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

#c# #solidworks

#c# #solidworks

Вопрос:

В 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,"");
  

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

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

Комментарии:

1. VB.Net позволяет передавать параметры в свойства, но c # этого не делает.

2. Ошибка указывает на то, что у вас есть свойство без параметра, например : .EnableFeature = true ; Свойство применяется к экземпляру объекта. У вас есть экземпляр метода сохранения: eDrawingControl1.eDrawingControlWrapper

Ответ №1:

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

 eDrawingControl1.eDrawingControlWrapper.EnableFeature[feature] = true;
  

Комментарии:

1. Спасибо! Я клялся, что пробовал это, но, по-видимому, все, что я делал в прошлый раз, было не так.