Ho definito diverse proprietà di una classe c++ e riesco ad accedervi tranquillamente tramite codice c# ma riscontro una anomalia sulle proprietà di tipo string.

Scrivendo ad esempio la seguente proprietà:

codice:
string nomeluogo;

public:
property string nomeLuogo {
    string get(){ return nomeLuogo; }
    void set(string s){ nomeLuogo = s; }}
}
Nel tentare di accedere tramite c# ottengo un problema di accesso (per livello di protezione).
E l'editor mi mostra le seguenti funzioni:
get_nomeLuogo(char*);
set_nomeLuogo(char*);

Ho fatto alcune modifiche ma non riesco a visualizzare nomeLuogo come qualunque altra proprietà direttamente accessibile. Se provo a usare string^ il compilatore dice che string non può essere managed, se la dichiaro come string* ottengo un errore in c# perchè non accetta i puntatori non-managed.
Qualche idea?