Avatar billede CodingJoe Nybegynder
20. december 2013 - 21:14 Der er 4 kommentarer

Factory pattern, der udfra en soapheader opretter en instans af en klasse

Er det en mulig løsning?

Jeg forsøger virkelig at tænke i en lidt generisk løsning, der indlæser noget konfiguration ud fra en variabel i fx en soapheader.

Grunden til et factory pattern er at alt efter instillinger konfigurationen, skal der instantieres et objekt med nogle forskellige properties sat.

Er det ikke en ok løsningsmodel?

I så fald kan man få nogle hints til implementationen? er det i virkeligheden et builder pattern, jeg har brug for?
Avatar billede arne_v Ekspert
21. december 2013 - 04:01 #1
server som bruger request header eller client som bruger response header?

Gammeldags .asmx eller WCF?

Er den dynamisk loadede klasse den service der skal bruges eller en mapning af parameter / retur vaerdi eller noget tredie?
Avatar billede CodingJoe Nybegynder
21. december 2013 - 10:41 #2
Det er WCF...den dynamisk loadede klasse er egentlig mere en anden state af klassen.

Det kan være jeg skal være helt præcis i min forklaring, istedet for at blot give en ide om, hvad jeg har brug for.

Det drejer sig om at kunne håndtere flere selskaber i noget af min kode. Dog vil jeg have at angivelse af, hvilket selskab kommer fra et request i headeren fra den klient, der skal bruge noget data.
Alt efter hvilket selskab, der er tale om, så skal jeg indlæse nogle særlige konfigurationsværdier fra enten en sektion i én stor konfigurationsfil eller læse en specifik konfigurationsfil for det selskab.

Jeg har leget lidt med ideen om at jeg har et factory pattern i min server, hvor den konsumerende klient sender mig fx. selskabs navnet (nok en enumværdi i længden), og jeg baseret på den værdi, instantierer en klasse og læser værdier fra konfigfilen i klassens properties.
Måske er der ikke tale om et factory pattern her alligevel?

Nu har jeg juleferie og masser af mulighed for at sidde op om natten med fedtet hår og udfordre mig selv :)
Avatar billede CodingJoe Nybegynder
24. december 2013 - 12:16 #3
...men Arne smid gerne et par input ind her.

Jeg ser et factory pattern her, men kan være jeg i virkeligheden sidder og overengineer noget.
Avatar billede arne_v Ekspert
26. december 2013 - 02:09 #4
Jeg har stadig ikke forstaaet hvad det er du vil

Du kan sagtens lave en:

MyInterface o = MyFactory.Create(OperationContext.Current.IncomingMessageHeaders.GetHeader<String>("name of class to use or some enum", "http://some.name.space/"));

Men hvad saa?
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