Próbuję wziąć WinTable obiektu i oddać go do swojej rodzimej typu obiektu, takich jak:Macierzysta klasa obiektów z WinControl?
CustomControl control = (CustomControl) this.UIMap.UIMainWindow.UICustomControl.NativeElement;
Następnie chcę potraktować otrzymaną CustomControl
jak bym w kodzie źródłowym jak control.DoAThing()
mojego programu, Już odwoływałem się do pliku .dll zawierającego klasę CustomControl
, ale problem polega na tym, że .NativeElement;
zwraca typ Object[]
, a nie Object
, taki jak definition of the function mówi, że powinien.
Czy droga jest .NativeElement
czy nie rozumiem jej przeznaczenia?
UPDATE: Sprawdziłem rodzajów obiektów w otrzymanej Object[]
a pierwszym z nich jest typu System.__ComObject
i 2nd jest System.Int32
ale nie jestem pewien, co jeden z nich reprezentuje ...
Wygląda na to, że nie otrzymujesz zarządzanego obiektu, ale tylko biblioteka DLL, w której znajduje się kontrolka com oraz liczba całkowita (przeznaczona jako wskaźnik) dla punktu wejścia obiektu. (co jest nawiasem mówiąc również dlaczego to wymaga pełnego zaufania dla bezpośredniego rozmówcy) Domyślam się, że '.NativeElement' nie powinien robić tego, czego się spodziewasz. Co to jest "CustomControl"? Czy sam napisałeś tę klasę? –
@ TimothyGroote Nie, jest to kontrola zewnętrzna. Mam jednak dostęp do kodu źródłowego. –
Jestem całkiem pewny, że ponieważ Array dziedziczy Obiekt, to Array