У меня есть два неуправляемых класса в двух разных DLL:
class A
{
public:
void doSomething();
private:
int x;
}
class B
{
public:
void doSomethingToAnA(A*);
}
и я хочу обернуть их обоих в управляемый C ++, поэтому естественно:
ref class managedA
{
public:
void doSomething();
private:
A* unmanagedA;
}
ref class managedB
{
public:
void doSomethingToAnA(managedA*);
private:
B* unmanagedB;
}
поэтому doSomethingToAnA (managedA *), вероятно, должен выглядеть следующим образом:
void managedB::doSomethingToAnA(managedA* a)
{
unmanagedB->doSomethingToAnA(a->unmanagedA);
}
однако, unmanagedA является частной. Я не хочу менять его видимость или создавать для него геттер, потому что тогда пользователь C # также сможет его увидеть (что очень странно), к тому же это неправильно по дизайну.
Я также не могу использовать приватную публичную видимость, так как классы расположены в разных DLL.
Есть ли хорошее "учебное" решение для этой проблемы?