2013-08-15 1 views
2

У меня есть файл OCX, построенный с использованием VB6, с которым я хотел бы получить доступ с C#. Поэтому я добавил ссылку на OCX в проекте C#, а затем добавил код для создания экземпляра объекта из OCX:Resharper with COM interop жалуется «Не удается получить доступ к внутреннему конструктору»

var blah = new Blah(); 

Это компилируется нормально, без ошибок и предупреждений, и это, кажется, работает, как я бы ожидать - я могу вызывать методы на объекте blah, и они, похоже, делают то, что я ожидаю от них. Однако, если я перейду к ReSharper/Inspect/Code Issues в решении, ReSharper жалуется, что приведенная выше строка является «ошибкой компилятора C#», говорящей «Невозможно получить доступ к внутреннему конструктору« BlahClass »здесь».

Поскольку он утверждает, что это ошибка компилятора C#, но, похоже, она скомпилирована (и на самом деле работает), я предполагаю, что это просто проблема с самим ReSharper. Тем не менее, я довольно новичок в этом, и я хотел бы убедиться. Возможно, что я делаю это не правильный способ создания объекта из OCX или что-то в этом роде?

Я использую VS2012 Professional и ReSharper 7.1.3.

ответ

0

Компилятор C# рассматривает этот коэффициент и видит вызов «динамического» кода (код, чьи объекты могут иметь новые методы/свойства, доступные после запуска) и, следовательно, не может быть уверен, что какой-либо конкретный метод/свойство isn ' t там во время компиляции. Resharper пытается помочь немного больше, пытаясь выяснить обстоятельства, которые могут потерпеть неудачу во время выполнения. Для принятия решения может использоваться устаревшее описание (библиотека типов) этого класса. Или, что описание этого класса не синхронизируется с тем, что на самом деле делает код. Трудно сказать, основываясь только на том, что вы опубликовали, хорошо это или плохо. Если «это работает», это кажется хорошим делом; но это очень субъективно - это может быть проблемой, ожидающей случившегося.

Я бы назвал это подозрительным и, возможно, связался с продавцом, чтобы получить уверенность, что там что-то скрывается, что вызовет проблемы позже.

 Смежные вопросы

  • Нет связанных вопросов^_^