У меня есть проект С#, который переопределил доступ к массиву ([]) следующим образом:
Foo.cs:
public override FooItem this[long index] {
...
Проект скомпилирован в .dll, на который ссылается мой проект C++/CLI.
У меня есть неуправляемый класс С++/CLI, FooAccess:
FooAccess.h:
class FooAccess : NativeCPPClass { // not ref class
private:
gcroot<CSDll::Foo^> myFoo;
public:
void Accessor();
В FooAccess.cpp:
void FooAccess::Accessor() {
myFoo->[0]; // doesn't work
myFoo[0]; // doesn't work
pin_ptr<FooItem^> p = &myFoo[0]; // doesn't work
Я в тупике.
Обратите внимание, что мне не разрешено редактировать проект C#, а класс C++/CLI не может быть ref class
, поскольку он наследуется от собственного класса.