| 

.NET C# Java Javascript Exception

7
Hi würde gern Eure Meinung hören damit ich die richtige Entscheidung treffe, bin noch neu in dem Theme und habe mir das bisher etwas ergooglet und hier im Forum ein paar Beiträge dazu gelesen :)

Folgende Situation:
Ich rufe von einem Webservice Daten ab welche aus einer Datenbank stammen. Der Webservice liefert mir die Datansätze in einem CDATA Element als XML. Das Schema zum XML habe ich. Mit XSD.exe habe ich mir die Klassen (Objektstruktur) erzeugen lassen. Zur laufzeit würde ich diese mit XmlSerializer (de-)serialisieren.

Aus einem Datensatz bzw. aus der Objektstruktur benötige nicht alle Klassen/Properties und würde diese in eine eigene von mir definierte Klassenstruktur überführen wollen.

Wie ich bisher recheriert habe, bieten sich mir folgende Möglichkeiten:
1. Ein ORM Framework:
Denke das ist aber overkill für meine Anwendung bzw auch nicht geeignet weil ich ja nicht dirket mit der DB kommuniziere sondern über einen Webservice.
Ist diese Einschätzung korrekt?

2. Automapper:
Scheint eine gute Lösung zu sein. Allerdings etwas zu statisch/unflexibel. Wenn nach Auslieferung der Anwendung ein Fehler im Mapping erkannt wird (der beim Testen nicht aufgefallen ist), dann müsste man die Anwendung neu kompilieren. Bin dann evtl zu diesem Zeitpunkt nicht mehr in der Firma tätig und jemand anderes müsste hier den Code kennen bzw. C# Entwickler sein um dies zu ändern.
Ein weiterer evtl nicht so gravierender Punkt ist, wenn sich das Schema des Xml ändert. Dann müsste ich ja, je nachdem was sich am Schema geändert hat, auch meine eigene Datenklassenstruktur anpassen und neu kompilieren.
Sind diese Einschätzungen korrekt?

3. Per Mapping Config Datei und Reflection:
Diese Lösung hatte ich von Anfang an im Kopf, war mir aber nicht sicher ob realisierbar. In diesem Artikel
http://www.techrepublic.com/article/applied-reflection-dynamically-accessing-properties-of-a-class-at-runtime/6099345
scheint die Lösung beschrieben zu sein, wenn ich es richtig verstanden habe. D.h. es gibt eine Config Datei die das mapping der Typen der Klassen und deren Properties beschreibt, das stelle ich mir dann ungefähr so vor in der Config:
SourceClassType=KlasseA, SourcePropertyName=PropA->DestinationClassType=KlasseB, DestinationPropertyName=PropX.
Kann das so funktionieren?
Wenn nun nach meinem Ausscheiden der Firma ein Fehler in dem Mapping erkannt wird, muss man nur die Config anpassen.
Automapper kann dies nicht? Oder gibt es ein Framework das dies kann um den Weg nicht selber programmieren zu müssen
Sind diese Einschätzungen korrekt?

Edit#1
4. Linq2Xml:
Ohne XSD.exe verwenden zu müssen. Einfache Lösung um Daten aus dem Xml des Webservices abzufragen und dann in die eigenen Strukturen zu stecken. Aber beim senden von Daten an den Webservice muss wieder ein gültiges XML erzeugt werden,d.h. spätestens hier muss dann wieder auf die von XSD.exe erzeugten Klassen zurückgeriffen werden.
Edit#1End
Dann habe ich noch zwei Fragen:
a) Die aus dem Schema erzeugte Datenstruktur hat zum Teil unübersichtliche Klassen und Property Bezeichner. Kann XSD.exe oder ein anderes Tool andere Bezeichnernamen generieren? Und dann müsste natürlich wieder später wenn ich die Daten wieder serialisiere und an den Webservice zurück sende, ein zum Schema konformes XML erzeugt werden. Ist das möglich?

b) Dann gibt es noch einen Spezialfall in meinem Schema und dem Mapping auf meine eigene Datenstruktur: Aus irgendeinem Grund generiert mir XSD.exe bei den Klassen immer eine Property "Text" welche vom Typ string[] ist, so wie es aussieht steht hier immer bei index=0 das was in einem Element zwischen den Spitzen klammern steht z.b. <ElementXYZ>abc</ElementXYZ>. Ok während ich das hier schreibe, erkenne ich gerade, dass dieser Text ja irgendwo gespeichert werden muss und da das Element ein komplexer Typ ist, legt XSD.exe dies wohl automtisch an. Aber warum als string array? Hier gibt es doch dann ein Problem, wenn ich genau diesen Wert aus index=0 Mappen möchte auf eine Property in meiner eigenen Datenstruktur. Geht das überhaupt mit Automapper, dass man aus Listen einen Wert mappen kann?

Edit#2
Hier ein Teil des Schemas und ein Beispiel was ich im Debugger sehe:
ABC.P[0].Text[0]
Woher kommt das string Array "Text"? Das P ein Array sein muss ist mir laut Schema klar.
<xs:element name='ABC'>
<xs:complexType>
<xs:sequence>
<xs:element ref='P' minOccurs="7" maxOccurs="11"/>
</xs:sequence>
<xs:attribute name='S'/>
<xs:attribute name='SI'/>
</xs:complexType>
</xs:element>
<xs:element name="P">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref='TT'/>
<xs:element ref='BR'/>
<xs:element ref='XREF'/>
<xs:element ref='XREF-TARGET'/>
<xs:element ref='E'/>
<xs:element ref='FT'/>
<xs:element ref='SUP'/>
<xs:element ref='SUB'/>
<xs:element ref='IE'/>
<xs:element ref='STD'/>
<xs:element ref='XDOC'/>
<xs:element ref='XFILE'/>
<xs:element ref='MSR-QUERY-TEXT'/>
</xs:choice>
<xs:attribute name='HELP-ENTRY'/>
<xs:attribute name='KEEP-WITH-PREVIOUS'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='KEEP'/>
<xs:enumeration value='NO-KEEP'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name='S'/>
<xs:attribute name='SI' type="typeSI"/>
<xs:attribute name='T'/>
<xs:attribute name='VIEW'/>
</xs:complexType>
</xs:element>


Die XML Instanz sieht so aus:
<ABC>
<P SI="description">test</P>
<P SI="category-1"></P>
<P SI="category-2"></P>
<P SI="category-3"></P>
<P SI="error-occurrence"></P>
<P SI="occurrence-milestone"></P>
<P SI="recorded-date">2011-07-08T00:00:00</P>
<P SI="xy"></P>
<P SI="ab">Y</P>
<P SI="attachmentlist" />
<P SI="attachment" />
</ABC>

Edit#2End

So das war jetz ne Menge Holz ich weis, aber ich hoffe ihr könnt mir trotzdem weiterhelfen auf die richtige Bahn zu kommen. Und ich finde dies ein interessantes Thema und würde gerne darüber mit euch diskutieren. Danke!
19.11.2011
donttellya 41 4
3 Antworten
4
Hallo donttellya,

zu 1.
Deine Einschätzung teile ich, ein ORM ist hier nicht das Richtige.

zu 2.
Automapper ist nicht per XML konfigurierbar. Ein Fehler im Mapping fällt beim Automapper sofort auf, da er einen integrierten Test der Mappings selbst mitbringt.
Mapper.AssertConfigurationIsValid();

Deine Sorge, dass Du nicht mehr in der Firma tätig sein solltest und jemand anderes Deine Mappings anpassen müsste, ist einerseits berechtigt, andererseits sehe ich in dem Kontext noch ein ganz anderes Problem. Selbst wenn Du die Mappings (auf welche Art und Weise auch immer) für jedermann konfigurierbar machst, dann bleibt Dir immer noch das Problem, dass Deine Applikation nichts damit tut, denn dazu müsste jemand die (C#) Applikation anpassen. Wenn Du also mit diesen Daten mehr vorhast, als sie z.B. in ein Grid mit automatischer Spaltenanzeige zu laden, wirst Du an Codeänderungen bzw. -erweiterungen an anderer Stelle benötigen. Ich kenne jetzt die Daten nicht, aber evtl. beeinflussen neu hinzugekommen Felder die Invarianten dieser Klasse?

zu 3.
Ja, so kann mans machen. Reflection ist halt nicht das performanteste (soweit ich weiß, generiert Automapper Code zur Laufzeit für die Mappings, was nach der Initialisierung der Performance von handgeschriebenem Code entsprechen würde). XML Konfigurationsdatei ist auch machbar, aber aus Gründen, die ich unter 2. schon genannt habe, würde ich sehr genau abwägen, ob Dir diese Flexibilität am Ende tatsächlich einen Mehrwert bringt oder trotz konfigurierbarem Mappings ein Impact auf andere Codeteile existiert, der Dich dort zu Änderungen bzw. Erweiterungen zwingt.

zu a.
Generiere Deine Klassen mit XSD, überarbeite Sie danach nach Deinem Gusto (z.B. Properties umbenennen) und hilf dem Serializer mit Attributen auf die Sprünge (die bei Generierung durch XSD eh schon vorhanden sein dürften). z.B. XmlElementAttribute für ein Element samt Namen im Xml angeben.

zu b.
Schau mal ins Schema, ob dieses Element, für das Dir ein Array generiert wird, ein maxOccurs > 1 hat. Dann handelt es sich nämlich nicht um ein Element, das genau einmal vorkommen kann, sondern tatsächlich um ein mehrfach erlaubtes Element. Und daraus wird XSD.exe eine Property mit Array-Typ generieren. Mappen solltest Du sowas dann auch ein Array bzw. einen passenden Collection-Typ.

zu EDIT#1:
zu 4.
Du kannst auch mit LINQ2XML wieder Xml Dokumente erzeugen, Mini-Beispiel hier. Ist auch eine Option, um Dein Problem zu lösen. Ich würde aber AutoMapper bevorzugen, weil mit Linq2Xml wieder einiges schief gehen kann und für sich getestet werden muss (allein die Strings, um die Elemente und Attribute zu referenzieren).

zu EDIT#2:
Ich vermute, dass xsd.exe mit der Übersetzung in Code einfach überfordert ist. Es muss aus den vielen choices am Ende irgendwie auf eine Property abbilden (helfen kannst Du evtl. mit einem XmlChoiceIdentifierAttribute). Ist nur eine Vermutung, aber ohne das Schema der im choice referenzierten Elemente zu kennen, kann ich nur raten.

Hoffe, das hilft Dir ein wenig weiter.
Viel Erfolg
Florian
21.11.2011
ffordermaier 8,4k 3 9
Super, vielen Dank für Deine Einschätzungen!
zu 2) Du hast größtenteils recht, Außnahmen wäre nur wenn bereits existierende Properties umgemapped werden müssen,aber ist natürlich sehr unwahrscheinlich.
Dann wurde mir noch in einem anderen Forum Linq2Xml vorgeschlagen, dazu habe ich meine Frage um Punkt 4 erweitert, sehe dies aber nicht als Lösung (sorry dass ich in mehreren Foren gepostet habe,wusste nicht dass dies nicht gern gesehen ist)
donttellya 21.11.2011
Habe Edit#1 für vorherigen Kommentar hinzugefügt und Edit#2. Für Edit#2 habe ich keine Erklärung.
donttellya 22.11.2011
Bin in meiner Antwort noch auf Deine Edits eingegangen.
ffordermaier 22.11.2011
Danke nochmal für Deine Hilfe. Musste aber doch einiges anderst machen. Die vom Webservice gelieferten responses konnten nicht in die von XSD.exe generierten Klassen deserialisert werden. Es kam zu Exceptions die ich nicht auf die schnelle lösen konnte. Also habe ich dies nun mit XmlDocument und xpath Ausdrücken gelöst. Die Lösung mit Automapper hätte vermutlich nicht funktioniert,weil nur bestimmte Elemente aus Collections zu mappen sind auf simple typen.Oder wie hätte man dies mit Automapper lösen können,also z.B. so was in der Art-> Map((list.Find(o=>o.id == 3)).Text, objB.Name)?
donttellya 29.11.2011
2
Woher kommt das string Array "Text"?

Dieser Teil der Frage ist relativ leicht zu beantworten. Er kommt von der Vorgabe 'mixed="true"' in der Definition von P. Siehe dazu z.B. diese Diskussion bei stackoverflow. Die einzelnen Elemente des Arrays Text enthalten den Text, der nicht in den Kind-Elementen von P steckt, sondern quasi "dazwischen".
30.11.2011
Matthias Hlawatsch 13,2k 4 9
+1. Was so ein kleines unscheinbares Attribut alles anrichten kann. Danke für den Hinweis, wieder was gelernt.
ffordermaier 30.11.2011
0
20171115lck
http://www.adidas-uk.me.uk/
http://www.mulberryhandbagssale.me.uk/
http://www.niketrainers-uk.org.uk/
http://www.pradahandbagsuk.co.uk/
http://www.truereligionjeansclearance.us.com/
http://www.michaelkorsoutletonline-stores.us.com/
http://www.truereligion-jean.us.com/
http://www.coach-handbags.us.com/
http://www.canadagoosecoats.org.uk/
http://www.coachfactoryoutletcoachoutlet.us.com/
http://www.airmax90uk.co.uk/
http://www.cheapjordansonline.us.com/
http://www.toryburchoutletonlinestore.us.com/
http://www.adidasnmduk.org.uk/
http://www.coach-factoryoutlets.us.com/
http://www.michaelkorsoutletonline-shop.us.com/
http://www.nikestore-uk.org.uk/
http://www.airhuaracheuk.org.uk/
http://www.christianlouboutin-outlet.me.uk/
http://www.coach-outletonlinesale.us.com/
http://www.cheapjordan-shoes.us.com/
http://www.michaelkorshandbagsclearancestore.us.com/
http://www.mont-blancpens.com.co/
http://www.clearancefitflopssale.com/
http://www.toryburch-outletstore.in.net/
http://www.reeboktrainers.me.uk/
http://www.oakleysunglassesoutlet-online.us.com/
http://www.pradaoutlet.us/
http://www.michaelkorsoutletkors.us.com/
http://www.toryburch.com.co/
http://www.coachcanada-outlet.ca/
http://www.canadagoosejacketscanagagooseoutlet.us.com/
http://www.kobe9elite.us.com/
http://www.katespade-outlets.us.org/
http://www.airjordan4.org/
http://www.sunglassesrayban.org.uk/
http://www.canadagooseblackfriday.us.com/
http://www.airforce1.us.com/
http://www.long-champhandbags.co.uk/
http://www.rayban--sunglasses.co.uk/
http://www.ralphlaurenpolo.us.com/
http://www.nikerosherun.me.uk/
http://www.outlettruereligion.in.net/
http://www.poloralphlaurens.me.uk/
http://www.oakley-sunglasses.nom.co/
http://www.christianlouboutin-outlet.us.org/
http://www.todsoutlet.us.org/
http://www.uggoutlet-stores.com.co/
http://www.uggboots-online.us.com/
http://www.coach-onlineoutlet.us.com/
http://www.polooutletfactorystore.us.com/
http://www.coachoutletonlineclearance.us.com/
http://www.michael-korsoutletuk.me.uk/
http://www.christianlouboutinonline.us.com/
http://www.uggoutletsale.us.com/
http://www.canadagooseoutletofficial.name/
http://www.coachoutletonline.us.org/
http://www.christian-louboutinshoes.us.org/
http://www.uggsoutletstore.com.co/
http://www.newbalanceshoes.in.net/
http://www.cheapraybansunglasses-wholesale.us.com/
http://www.long-champsolde.fr/
http://www.ferragamo-outlets.us.com/
http://www.jordanshoes.us.com/
http://www.nikeairmax90.nl/
http://www.wholesaleraybansunglasses.us.com/
http://www.cheap-nfljerseyschina.us.com/
http://www.canada--goosejackets.ca/
http://www.coachoutletonline-clearance.us.com/
http://www.coachfactoryoutletstore.com.co/
http://www.montblancpenss.us.com/
http://www.michaelkorsoutletme.us.com/
http://www.pumaoutlet-online.com/
http://www.michaelkors.eu.com/
http://www.thomassabocharms.me.uk/
http://www.ralphlauren-poloshirts.org.uk/
http://www.true-religionjeanssale.us.com/
http://www.truereligion-jeanssale.us.com/
http://www.mbt-shoesoutlet.us.com/
http://www.cheapnba-jerseys.us.com/
http://www.canada--goose.ca/
http://www.burberryoutlet.ca/
http://www.eccoshoesoutlet.us.com/
http://www.uggoutlets-store.us.com/
http://www.fitflopssale.me.uk/
http://www.uggoutletonsale.us.com/
http://www.swarovskicrystaluk.me.uk/
http://www.coachoutlet-onlines.us.com/
http://www.raybansunglasseshut.us.com/
http://www.canadagoose-outlet.us.org/
http://www.monclerjacketsuksale.co.uk/
http://www.uggoutletsstore.us.com/
http://www.christianlouboutin-shoes.me.uk/
http://www.canadagoosejacketssale.co.uk/
http://www.truereligionjeanssale.com/
http://www.niketrainersnikeshoes.co.uk/
http://www.michaelkorshandbags.in.net/
http://www.cheapsnapbacks.net/
http://www.coachoutletclearanceonline.us.com/
http://www.pradashoesofficial.us/
http://www.cheap-uggsoutlet.us.com/
http://www.uggbootscybermonday.us.com/
http://www.truereligion-jeansoutlet.us.com/
http://www.soccerjerseys.us.com/
http://www.michaelkorswallets.us.org/
http://www.nikeairmaxtrainers.co.uk/
http://www.canadagooseoutlet-online.com.co/
http://www.uggbootsclearances.us.com/
http://www.jordan-shoes.us.com/
http://www.michaelkorsoutletfactorystore.us.com/
http://www.christianlouboutin-outletsale.us.com/
http://www.canadagoose-outlet.ca/
http://www.oakleysunglassescheapsale.us.com/
http://www.oakleysunglassescheapwholesale.us.com/
http://www.pandorajewelrys.us.org/
http://www.uggboots-australia.us.com/
http://www.christianlouboutinoutletsale.us.com/
http://www.nikeoutlets.us.org/
http://www.uggoutletsale.us.org/
http://www.michael-korsoutletuk.org.uk/
http://www.pandoracharms-saleclearance.org.uk/
http://www.ray-bansunglassesofficial.us.com/
http://www.ralphlaurenoutlet.org.uk/
http://www.asics-shoes.us.com/
http://www.ferragamooutletstore.us.com/
http://www.canadagooseoutletstore.ca/
http://www.uggoutletclearance.us.com/
http://www.cheapmlbjerseys.net/
http://www.michaelkorshandbagsoutletstores.us.com/
http://www.futbol-baratas.com/
http://www.handbagslongchamp.us.com/
http://www.nfljerseyss.us.com/
http://www.footballshirts.me.uk/
http://www.moncler.us.com/
http://www.poloralph-lauren.us.com/
http://www.maccosmeticsoutlet.us.com/
http://www.fitflopssaleclearance.in.net/
http://www.michaelkorsoutletclearancer.us.com/
http://www.canadagoosejackets-uk.org.uk/
http://www.canadagoose-jackets.org.uk/
http://www.uggoutletcheap.us.com/
http://www.hermesoutletstore.us.com/
http://www.raybans-sunglasses.us.com/
http://www.michaelkors-handbagsuk.me.uk/
http://www.michaelkorsukhandbags.co.uk/
http://www.raybanscheap.us.com/
http://www.coachoutletcoachfactoryoutlet.us.com/
http://www.basketballshoes.us.com/
http://www.vans-shoes.cc/
http://www.ugg-outletonlineclearance.us.com/
http://www.uggsoutlet-stores.us.com/
http://www.airmax-trainers.co.uk/
http://www.michaelkorsoutletclearanceinc.us.com/
http://www.nikeshoes-outlet.us.com/
http://www.pandoracharmssale-clearance.com/
http://www.canadagoose-jackets.com.co/
http://www.raybansunglassescheapsale.us.com/
http://www.nfljerseysofficial.us.com/
http://www.canadagooseoutlet-online.com/
http://www.longchampoutlet1.us.com/
http://www.oakleysunglasseswholesalestore.us.com/
http://www.uggsoutletscheap.us.com/
http://www.canadagooseoutletcanadagoosejackets.com/
http://www.bottega-venetaoutlet.us/
http://www.salomonshoessalomonoutlet.us.com/
http://www.coachoutlet-store.us.org/
http://www.nikefree5.us/
http://www.coachoutletcoupons.us.com/
http://www.uggoutletshop.us.com/
http://www.uggoutlet.ca/
http://www.oakleysunglasses-uk.org.uk/
http://www.michaelkorsbagss.co.uk/
http://www.coachhandbagsclearance.us.com/
http://www.canadagooseoutletstore.name/
http://www.poloralphlaurenoutlet-online.us.com/
http://www.oakleysunglassesoutletcheap.us.com/
http://www.nikeshoesforwomen.us.com/
http://www.linksoflondon.org.uk/
http://www.michaelkors-outletonlineclearance.us.com/
http://www.katespadeoutletonlinestore.us.com/
http://www.michaelkorsfactoryoutletonline.in.net/
http://www.coachoutletcanada.com.co/
http://www.monclerjacketsuk.co.uk/
http://www.valentinooutlet.us.com/
http://www.canadagooseoutletstores.name/
http://www.coachoutletstores.eu.com/
http://www.fitflop.in.net/
http://www.uggcybermonday.us.com/
http://www.oakleysunglasseswholesalechina.us.com/
http://www.pandorajewelryoutlet.us.com/
http://www.canadagoose-outletstores.com.co/
http://www.canadagoose-jackets.co.uk/
http://www.coachoutletstoreonlineclearance.us.com/
http://www.ralphlaurenpoloshirt.us.com/
http://www.kobeshoes.us/
http://www.oakleysunglassesoutletsale.us.com/
http://www.longchamphandbagssale.us.com/
http://www.cheapoakleysunglassesformen.us.com/
http://www.michaelkorsoutletfriday.us.com/
http://www.true-religion.org.uk/
http://www.coachoutletonline-factory.us.com/
http://www.adidas-wings.in.net/
http://www.toryburchoutletofficial.us.com/
http://www.truereligionoutlet-store.us.com/
http://www.hermesbelts.us.com/
http://www.coachfactoryoutletclearance.us.com/
http://www.poloralphlaurenfactorystore.org.uk/
http://www.canadagoose-jackets.us.org/
http://www.uggsboots.ca/
http://oakley.sunglassess.us.com/
http://www.chromeheartsoutlet.com.co/
http://www.canadagooseparka.name/
http://www.moncler.us.org/
http://www.ralphlaurenpolo.eu.com/
http://www.moncleroutletonline.us.com/
http://www.canadagooseoutletclearance.us.com/
http://www.longchampoutlet.us.com/
http://www.coachoutletonlinecoachoutlet.us.com/
http://www.toryburchoutletclearance.us.com/
http://www.michaelkorshandbags-onsale.us.com/
http://www.mulberrysaleuk.org.uk/
http://www.adidasoutletstore.in.net/
http://www.poloralphlauren-outlets.us.com/
http://www.katespadesoutletonlinestore.us.com/
http://www.ralphlauren-outletuk.co.uk/
http://www.uggbootsblackfridays.us.com/
http://www.coachoutletoutlet.us.com/
http://www.reebokoutletstores.us.com/
http://www.ralphlauren-pascher.fr/
http://www.suprashoes.us.com/
http://mulberryoutlet.outlet-store.co.uk/
http://www.oakleysunglasseswholesaleauthentic.us.com/
http://www.burberryoutletstore.in.net/
http://www.polo-lacostepascher.fr/
http://www.louboutin-shoes.org.uk/
http://www.uggoutletstoresofficial.us.com/
http://www.jordanshoesclearance.us.com/
http://www.uggoutletonline-clearance.us.com/
http://www.fitflopssale.us/
http://www.nikeairhuaraches.co.uk/
http://www.outletugg-boots.us.com/
http://www.long-champpliage.fr/
http://www.ralphlaurenoutletclearance.us.com/
http://www.uggboots-outletonline.us.com/
http://www.michaelkors.de.com/
http://www.cheapjerseyswholesale.org/
http://www.michaelkorsoutletonlinefactory.us.com/
http://www.coach-outletclearance.us.com/
http://www.cheap-jordanshoes.us.com/
http://www.oakleysunglasses-sale.us.com/
http://www.kobebryantshoes.in.net/
http://www.pandoracharmssaleclearances.co.uk/
http://www.uggoutletuggs.us.com/
http://www.salvatore-ferragamo.in.net/
http://www.coachoutletclearance.us.org/
http://www.truereligionjeans-canada.com/
http://www.canadagooseoutletstores.ca/
http://www.katespadeoutletstore.us/
http://www.mulberryhandbags-uk.me.uk/
http://www.raybansunglasses2.us.com/
http://www.truereligionjeansoutlet.co.uk/
http://www.adidasnmdad.us.com/
http://www.lakersjerseys.us.com/
http://www.mulberrybagssale.org.uk/
http://www.mulberrybagsuk.co.uk/
http://www.truereligionjeans.co.uk/
http://www.canadagooseoutlet-stores.com.co/
http://www.fitflopsshoes.in.net/
http://www.michaelkors-outletclearance.us.org/
http://www.mulberryoutlets.org.uk/
http://www.raybansunglasses-outlets.us.com/
http://www.ferragamoshoes.org.uk/
http://www.christianlouboutin-shoes.co.uk/
http://www.nbajerseysnike.us.com/
http://www.michaelkorsfactory-outlets.us.com/
http://www.christianlouboutin-shoes.us.org/
http://www.cheapmlbjerseyss.us.com/
http://www.toryburchoutlets.us.org/
http://www.katespadeoutletonlinestores.us.com/
http://www.uggsoutlet.ca/
http://www.oakleysunglassescheapoutlet.us.com/
http://www.nikeblazerpaschers.fr/
http://www.canadagooseoutlet-stores.com/
http://www.canada-gooseoutletstores.com.co/
http://www.canadagoosejackets.me.uk/
http://www.soccer-shoes.us/
http://www.coach-factoryoutlets.us.org/
http://www.uggoutletauthentic.us.com/
http://www.longchamphand-bags.co.uk/
http://www.hermesoutletonline.us.com/
http://www.longchampsoldes.fr/
http://www.uggoutletofficials.us.com/
http://www.michaelkorsoutletmichaelkorsoutletonline.us.com/
http://www.burberry-outletstore.in.net/
http://www.canada-gooseoutletstore.com/
http://www.ugg-bootsoutlet.us.org/
http://www.coachoutletonline.com.co/
http://www.truereligionoutletclearance.us.com/
http://www.truereligionjeansoutlets.us.com/
http://www.birkenstocksandals.me.uk/
http://www.ugg-outletsstore.us.com/
http://www.birkenstock-outlet.us.com/
http://www.polo-outletstore.us.com/
http://www.yeezyboostoutlet.us.com/
http://www.pradasunglasses.us.com/
http://www.katespadeoutletonlines.us.com/
http://www.michae-kors-outlet.ca/
http://www.cartieroutlets.us.com/
http://www.ralphlaurenpoloshirtss.us.com/
http://www.fredperrypolo-shirts.com/
http://www.swarovski-outlet.us.com/
http://www.swarovskioutletstores.us.com/
http://www.coachoutletonline-coachfactoryoutlet.us.com/
http://www.oakleysunglasseswholesaleoakley.us.com/
http://www.cheapsoccerjersey.net/
http://www.michaelkorsoutletz.us.com/
http://www.michaelkorsoutletonlineofficial.us.com/
http://www.nikeoutletonline.us.org/
http://www.michaelkorsoutletcoupons.us.com/
http://www.polooutletpolo.us.com/
http://www.oakley-sunglasseswholesale.us.com/
http://www.longchamppascher.fr/
http://www.cheapraybansunglasseswholesale.us.com/
http://www.marc-jacobs.us.org/
http://www.uggoutletstoress.us.com/
http://www.nike-airmax2015.us/
http://www.jeanstruereligion.in.net/
http://www.ralphlaurenpolo-outlet.us.com/
http://www.uggoutlets.ca/
http://www.rayban-sunglassesoutlets.us.com/
http://www.swarovski-outlets.us.com/
http://www.canada-gooseoutletstore.com.co/
http://www.toryburchoutletstores.us.org/
http://www.mulberryhandbagsuk.org.uk/
http://www.michaelkorssuk.org.uk/
http://www.uggoutletusa.us.com/
http://www.max1.nl/
http://www.coachoutletsales.us.com/
http://www.vansshoesoutletstore.us.com/
http://www.polooutletonlinestores.us.com/
http://www.canadagoosesoutletstore.com/
http://www.poloralphlaurenofficial.us.com/
http://www.mcmoutletstore.us.org/
http://www.coachoutletcoachoutletonline.us.com/
http://www.raybansunglassesok.us.com/
http://www.fitflopsoutletsale.com/
http://www.uggsoutlet-boots.us.com/
http://www.outletchristianlouboutin.us.com/
http://www.michael-korsoutletclearance.us.org/
http://www.cheapmichaelkors-handbags.us.com/
http://www.michaelkorsofficial.us.com/
http://www.fitflopssale.in.net/
http://www.ralphlaurenpoloshirts.org.uk/
http://www.cheapuggbootsonline.us.com/
http://www.uggoutletonlinestore.us.org/
http://www.uggoutletscheap.us.com/
http://www.canadagoosecybermonday.us.com/
http://www.uggoutletugg.us.com/
http://www.swarovskicrystaluk.org.uk/
http://www.chicagoblackhawksjerseys.us.com/
http://www.coachoutletstore.com.co/
http://www.edhardy.us.com/
http://www.raybansunglassesofficialsite.us.com/
http://www.hermes-birkin.in.net/
http://www.kevindurantshoes.net/
http://www.lacostepoloshirts.us/
http://www.adidastrainersshoes.co.uk/
http://www.uggoutlet-onlineclearance.us.com/
http://www.airmax90.us.com/
http://www.nike-store.org.uk/
http://www.uggoutletuggboots.us.com/
http://www.ferragamo.eu.com/
http://www.michaelkorshandbags-outlets.us.com/
http://www.canadagooseoutletonline.com.co/
http://www.longchamphandbagsuk.me.uk/
http://www.michaelkorsfactoryoutlet.us.org/
http://www.burberrysaleoutlet.us.com/
http://www.michaelkorsoutlet-sale.us.com/
http://www.michaelkorsoutlet-storesofficial.us.com/
http://www.ferragamoshoesofficial.us.com/
http://www.raybansunglasses1.us.com/
http://www.oakleysunglassesformens.us.com/
http://www.uggoutletonlineclearance.us.org/
http://www.michaelkorsblackfridays.us.com/
http://www.coachfactoryoutletsales.us.com/
http://www.ralphlaurenoutletstores.us.com/
http://www.yeezyboost350sale.us.com/
http://www.lebronjamesshoess.us.com/
http://www.coach-factoryoutletclearance.us.com/
http://www.raybansunglassesusa.us.com/
http://www.poloralphlaurens.org.uk/
http://www.coachoutletclearance.us.com/
http://www.canadagooseoutlets.name/
http://www.converseshoes.us.com/
http://www.niketrainers-uk.co.uk/
http://www.michaelkorsoutletmks.us.com/
http://www.ysloutlet.us.com/
http://www.longchampoutletonlines.us.com/
http://www.ralph-laurenpolo.us.com/
http://www.nikerosheone.us/
http://www.michaelkorsoutlet-onlineclearance.us.com/
http://www.cheapnhljerseyss.us.com/
http://www.polo-outletonline.us.com/
http://www.coachoutletonlinecoachfactory-outlet.us.com/
http://www.foampositeshoe.net/
http://www.nhljerseysforsale.us.com/
http://www.uggbootsclearance.us.org/
http://www.cheapoakleysunglassesfactory.us.com/
http://www.airmax90uk.me.uk/
http://www.rayban-sunglassesoutlet.us.com/
http://www.oakleysunglassesusa.us.com/
http://www.nikeairmax-90.org.uk/
http://www.candagooseoutletus.com.co/
http://www.poloralphlaurensale.us.com/
http://www.coach-outletstore.us.org/
http://www.pandorajewelrycharms.in.net/
http://www.raybansunglasses-sales.us.com/
http://www.canadagooseoutletstore.com.co/
http://www.oakleysunglassesofficial.us.com/
http://www.cazaloutlet.us.com/
http://www.christian-louboutinoutletstore.us.com/
http://www.nikefactoryoutlets.us.com/
http://www.uggbootsonsale.us.org/
http://www.hervelegeroutlet.us.com/
http://www.michaelkorsoutlet-uk.me.uk/
http://www.uggblackfridays.us.com/
http://www.oakleysunglassesoakley.us.com/
http://www.uggsoutletuggboots.us.com/
http://www.nikeairmax-90.me.uk/
http://www.fitflopsshoes.me.uk/
http://www.clevelandcavaliers.us.com/
http://www.truereligionjeans.org.uk/
http://www.swarovskioutletstore.us.com/
http://www.ferragamooutletstore.net/
http://www.uggoutletuggsoutlet.us.com/
http://www.cheap-snapbacks.us.com/
http://www.canadagoosesjackets.com.co/
http://www.chromeheartsoutletstore.us.com/
http://www.cheapjordansfreeshipping.us.com/
http://www.coachoutlet-clearance.us.com/
http://www.michaelkorsoutletclearance-online.us.com/
http://www.giuseppe-zanotti-outlet.org/
http://www.toryburchoutlet-online.us.com/
http://www.mulberry-handbagsoutlet.org.uk/
20171115lck
15.11.2017

Stelle deine Reflection-Frage jetzt!