Bohužel po prostudování zdrojového kódu ovladače C# (a zdrojového kódu Java, abyste viděli, co dělal), je skutečná adresa serveru, která byla použita jako součást načítání, skryta v Enumerátoru jako soukromý člen. (_serverInstance ).
Konkrétně je skrytá ve třídě zvané MongoCursorEnumerator . Bohužel neexistuje "čestný" způsob, jak se k tomu dostat. Předpokládám, že byste k tomu mohli použít reflexi .NET, ale to obecně není dobrý nápad, zvláště s kódem, který nevlastníte. Pokud byste chtěli mít vlastní vidlici ovladače, můžete ji snadno přidat jako novou vlastnost. Možná budete chtít přidat problém sem
.
Obecně můžete získat instance používané připojením MongoDB, protože jsou dostupné na MongoServerInstance třídy, Address vlastnost.
var client = new MongoClient();
var server = client.GetServer();
// server.Instance.Address
Ve vašem případě jej však můžete získat také z cursor přes Server vlastnost:
cursor.Server.Instance.Address.Host
nebo
cursor.Server.Instances[]
Dokumentace kurzorového serveru
Ovladač C# zajímavě vyvolá výjimku, když je k dispozici více než jedna instance. Pokud tedy nevíte, kolik instancí existuje, musíte buď zpracovat exception (InvalidOperationException ), nebo vždy použijte Instances[] vlastnost vrátit přidružené instance.