Γράφοντας ένα πρόγραμμα ανάγνωσης πόρων json στο .NET Core
Θα δημιουργήσουμε ένα προσαρμοσμένο πρόγραμμα ανάγνωσης πόρων για χρήση με βιβλιοθήκες .NET Core.
Category Fundamentals
Published: 31 Ιουλίου 2021
Σε αυτήν την ανάρτηση, θα δημιουργήσουμε ένα δικό μας πρόγραμμα ανάγνωσης πόρων για χρήση με βιβλιοθήκες .NET Core. Στο τέλος, θα έχουμε ένα project αφιερωμένο στους πόρους.
Αρχικώς, χρειαζόμαστε μια κλάση που να αντιπροσωπεύει τον φάκελό json
μας όπως παρακάτω:
Το Key
είναι ένα μοναδικό αναγνωριστικό για την τοπική προσαρμογή και το
LocalizedValues
είναι ένα λεξικό, του οποίου το κλειδί του είναι η γλώσσα και η τιμή του το κειμένου που πρέπει να εμφανίζεται.
Θα δημιουργήσουμε επίσης ένα νέο τύπο Exception
, για να εντοπίζουμε εύκολα τι πήγε στραβά κατά την εκτέλεση της εφαρμογής.
Και εδώ συμβαίνει η μαγεία, η κλάση JsonLocalizer
θα μας διαβάσει τα json resources files
, θα τα αποθηκεύσει στη μνήμη και θα τα διαθέσει στην εφαρμογή μας.
Στον κατασκευαστή μας αναμένουμε δύο παραμέτρους, useBase
και additionalPaths
.
Εάν η τιμή useBase
έχει οριστεί σε αληθές, ο τοπικοποιητής θα φορτώσει τα αρχεία
*.json
που βρίσκονται στο κατάλογο
Resources
. Το
additionalPaths
χρησιμοποιεί έναν τύπο ως κλειδί, ο τοποποιητής θα χρησιμοποιήσει αυτόν τον τύπο για να βρει τη διαδρομή συγκρότησης και να διαβάσει τα αρχεία
*.json
μέσα από τον κατάλογο Resources
.
Στις εφαρμογές dotnet core
, μπορείτε να προσθέσετε το
JsonLocalizer
με την χρήση της μεθόδου IServiceCollection
μέσα στο
ConfigureServices
.
Για να χειριστείτε additionalPath
Τώρα που τα έχουμε όλα στημένα, μπορούμε να αρχίσουμε να χρησιμοποιούμε τον τοπικοποιητή μας:
Ο τοπικοποιητής θα βρει το κείμενό σας με:
FileName:Key:Language
Ακολουθούν ορισμένα παραδείγματα για το πώς μπορείτε να γράψετε τα αρχεία πόρων σας:
Όνομα αρχείου | Όνομα πόρου |
---|---|
MyResource.json | MyResource |
MyApp.Resource.json | MyApp |
MyApp-Errors.Resource.json | MyApp-Errors |
MyApp.Errors.Resource.json | MyApp |
Το Key
είναι το κλειδί μέσα στο αρχείο πόρων και η
Language
είναι η κουλτούρα. Εάν δεν ενημερωθεί, θα χρησιμοποιήσει την τιμή του CultureInfo.CurrentCulture
.
Το αρχείο πόρων json
θα πρέπει να ακολουθεί την παρακάτω κατάλληλη μορφή: