I denne opgave tager vi udgangspunkt i eksemplet ItemsRazor ItemRazorV6.zip
Opgaven går ud på at, det skal den service der gemmer objekterne i en Json-fil skal gøres generisk, således at klassen kan benyttes til at gemme både Items-objekter og User-objekter.
Step 1
(JsonFileService)
Step 2
(Startup.cs)
Ret startup.cs linie 34 så den benytter den generiske klasse; services.AddTransient<JsonFileService<Item>>();
Step 3 (ItemService)
Refaktorer ItemService så den benytter den generiske JsonFileService.
Step 4 (Afprøv)
Afprøv at det refaktorerede program virker.
I stedet for MockUsers skal der nu benyttes JsonFileService.
Step 5 (UserService)
Refaktorer UserService så den benytter den generiske JsonFileService i stedet for MockData.
Husk: at registrere den nye Service i Startup.cs: services.AddTransient<JsonFileService<User>>(); og Injicer (inject) JsonFileService i konstruktøren til UserService (se evt. ItemService).
Bemærk: Første gang programmet køres efter refaktorering, er det lettest at indlæse MockUsers og kalde JsonFileService.SaveJsonObjects(Users); for at få lavet json-filen. Efterfølgen indlæses fra Json-filen i stedet for MockData.
Step 6 (Afprøv)
Afprøv at det refaktorerede program virker.
God fornøjelse!
Henrik Høltzer