Avatar billede CodingJoe Nybegynder
18. maj 2013 - 19:26 Der er 2 kommentarer og
1 løsning

Extension methods med constraint på interface

Jeg har følgende Extension klasse:

public static class Extension
    {
        public static string AsJson<T>(this IEnumerable<T> seq) where T : IAsynchronizable
        {
            return JsonConvert.SerializeObject(seq);
        }

        public static string AsJson<T>(this T entity) where T : IAsynchronizable
        {
            return JsonConvert.SerializeObject(entity);
        }
    }

Jeg har to metoder:
A. Returnerer en liste:
return HentMinListeAfPersoner().AsJson();

Udkommenterer jeg min nederste AsJson metoder, virker det fint.
Hvis jeg lader den være tilgængelig får jeg en compiler fejl.
Hvordan kan jeg have denne overload side om side.

Jeg vil gerne have at min AsJson() extension metode både kan virke mod List<T> og T.
Hvad mangler jeg?
Skal jeg lave en extension til min extension metode?
Avatar billede runesoft Nybegynder
18. maj 2013 - 19:52 #1
Din anden metode behøver ikke være generisk.
public static string AsJson(this IAsynchronizable entity)
        {
            return JsonConvert.SerializeObject(entity);
        }

og eller kan du bare lave en der opererer på object, så skal du kun lave én :)
Avatar billede CodingJoe Nybegynder
18. maj 2013 - 20:00 #2
Nogen gange kan man ikke se skoven for bare tæer. Dejligt med at par friske øjne. Jeg tænkte i hel andre komplekse baner, når løsningen var / blev så simpel, er det næste helt på et filosofisk niveau.

Tak, jeg burde ha' set denne :D
Avatar billede CodingJoe Nybegynder
18. maj 2013 - 20:05 #3
*Der skulle stå træer...men tæer kan også bruges he he he
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester