我在两个不同的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是私有的。我不想改变它的可见性或为它创建一个getter,因为C#用户也可以看到它(这很奇怪),而且,它在设计方面是错误的。 我也不能使用私有公共可见性,因为类位于不同的DLL中。
这个问题有一个很好的“教科书”解决方案吗?