TL;DR: Hvis du er doven, så brug BsonSerializer.LookupSerializer
eller BsonMemberMap.GetSerializer
. For at gøre det rigtigt , sørg for, at registreringskoden kaldes én gang og kun én gang .
Den bedste måde at undgå dette på er at sikre, at serializeren kun registreres én gang. Det er en god idé at have en global opstartskode, der registrerer alt, der er globalt for applikationen én gang og kun én gang. Det inkluderer ting som afhængighedsinjektorkonfiguration, værktøjer som automapper og mongodb-driveren. Hvis du kun kalder denne kode én gang og fra et enkelt punkt i koden, behøver du ikke bekymre dig om trådsikkerhed, dead locks eller lignende problemer.
MongoDB-driverens konfigurationsindstillinger er trådsikre, men antag ikke, at dette er sandt for alle softwarepakker, som du muligvis skal konfigurere. Låsning kan også være meget dyrt ydelsesmæssigt, hvis din kode er multi-threaded, for eksempel i en web-applikation. Sidst, men ikke mindst, er det opslag, du laver, måske ikke trivielt i første omgang, fordi nogle metoder skal gå et helt arvetræ.