Свойство Control принимается компилятором, вызывает ошибку времени выполнения «не существует» в UserControl - но прекрасно работает во время выполнения - PullRequest
1 голос
/ 28 сентября 2010

Я использую LeadTools Multimedia элемент управления захватом видео, который отображается как тип AxltmmCaptureCtrl. В моем коде у меня есть следующая строка:

AxltmmCaptureCtrl1.VideoWindowSizeMode = LTMMLib.ltmmSizeMode.ltmmFit;

Это компилируется просто отлично, без жалоб и даже предупреждений от компилятора. Но когда я использую вещь во время выполнения, я получаю следующую ошибку:

Method not found: 'Void AxLTMMLib.AxltmmCaptureCtrl.set_VideoWindowSizeMode(LTMMLib.ltmmSizeMode)'.

WTF ?! Intellisense выбирает метод, и компилятор в порядке с ним - но в runtime он вдруг решает, что метод не существует?

Есть некоторые другие свойства (не все), демонстрирующие аналогичное поведение. Кажется, он не различает сеттеры и геттеры.

Есть идеи?

РЕДАКТИРОВАТЬ: Curiouser и curiouser ... кажется, что проблема возникает только во время выполнения UserControl , т.е. в режиме разработки. Я поместил этот элемент управления LeadTools в свой собственный UserControl, и когда я помещаю этот элемент управления в другую форму, я получаю эту ошибку «Метод не найден». Но когда он во время выполнения («реальное» время выполнения, то есть не время выполнения UserControl), код работает отлично! Как странно это?

1 Ответ

1 голос
/ 28 сентября 2010

Вы компилируете против сборки взаимодействия - управляемой сборки / .NET, предназначенной для имитации базового COM API. Наиболее вероятная проблема здесь - управление версиями; возможно, это свойство присутствует в управляемой PIA, но отсутствует в имеющейся у вас версии COM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...