void run() { MyProtectedBase mpb = new MyProtectedBase("MyProtectedBase"); mpb.accessProtected(); try { // C++ destructor is protected mpb.Dispose(); throw new Exception("failed to catch MethodAccessException"); } catch (MethodAccessException) { // Exception message: C++ destructor does not have public access } ProtectedDerived pd = new ProtectedDerived("ProtectedDerived"); // Destroying via the ProtectedDerived's destructor should work pd.Dispose(); ProtectedBase pb = new ProtectedDerived("ProtectedDerived"); // ProtectedDerived's destructor should be called via the Dispose(disposing) virtual call pb.Dispose(); }
void run() { MyProtectedBase mpb = new MyProtectedBase("MyProtectedBase"); mpb.accessProtected(); }
void run() { MyProtectedBase mpb = new MyProtectedBase("MyProtectedBase"); mpb.accessProtected(); }