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.