0
我有兩個非託管班,在兩個不同的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);
}
但是,非託管A是私有的。我不想改變它的可見性或爲它創建一個getter,因爲然後C#用戶也將能夠看到它(這很奇怪),另外,這是錯誤的設計方式。 由於這些類位於不同的DLL中,因此我也不能使用私有的公開可見性。
有沒有一個很好的「教科書」解決這個問題?