Lim inn C# til venstre og klikk "Konverter" — så gjør vi det om til XMLLim inn C#-kode

Hva verktøyet gjør

Hvis du noen gang har måttet håndlage en XML-payload som speiler en C#-klasse — for et SOAP-kall, en config-fil, en WCF-kontrakt eller en test-fixture — så vet du hvor mye boilerplate det blir. Lim inn C#-koden her og du får velformet XML tilbake på én runde. En enkelt object initializer, en hel modellfil med flere klasser eller noe dypt nøstet — samme resultat: et komplett XML-dokument med hver property bevart.

Dette er ikke bare dum string-replace. Converteren vet hvordan C# faktisk serialiserer til XML: decimal-suffikser som 49.99m mister m, DateTime og DateTimeOffset kommer ut som ISO-8601-strings, Guid blir en standard 8-4-4-4-12 hex-string, nullables med null-verdi blir tomme elementer, og collections følger samme form som XmlSerializer ville produsert — hver List<T> blir et container-element med ett barn per item, oppkalt etter elementtypen.

Serialiseringsattributter blir også respektert. [XmlRoot("x")] gir rotelementet nytt navn, [XmlElement("x")] et barn, [XmlAttribute("x")] sender propertyen ut som attributt i stedet for element, og [XmlIgnore] dropper den. [DataMember(Name="x")]DataContract-klasser funker på samme måte. Limer du inn flere klasser, kommer hver ut i output med nøstede typer brettet ut og arvede properties tatt med. Ingenting forsvinner i det stille.

Slik bruker du det

Tre steg. Funker likt uansett om du limer inn fem linjer eller en hel modellfil.

1

Lim inn C#-koden din (eller prøv eksempelet)

Slipp C#-koden inn i venstre editor som den er. En object initializer, en full klassedefinisjon, flere klasser eller nøstede typer — alt funker. Klikk Last inn eksempel hvis du vil se et realistisk eksempel først.

Du trenger ikke strippe kommentarer, fjerne attributter eller rydde i C#-syntaksen. La koden stå slik den ser ut i IDE-en din. Bare lim inn.

2

Trykk Konverter

Klikk på den grønne Konverter-knappen. Verktøyet leser C#-koden, beholder hver klasse og property, og bygger XML-en på én runde. Du ser en kort loading-indikator mens det kjører.

3

Kopier XML-en

Høyre panel fylles med innrykket, velformet XML som enhver standardkompatibel XML-parser godtar. Kopier den rett inn i SOAP-requesten, config-fila, test-fixturen eller dokumentasjonen.

Når dette faktisk er nyttig

Lage SOAP- / WCF-fixtures

Du har en C#-request-kontrakt og trenger en XML-body til å slippe inn i SoapUI eller Postman. Lim inn klassen, ta XML-en, videre.

Starte config-filer

En Settings-klasse med 40 properties blir til en klar-til-redigering XML-mal for app.config, web.config eller en hvilken som helst XML-basert config store — ingen håndskrevet boilerplate.

Holde docs i synk med koden

Generer XML-eksempler til en README, API-referanse eller XSD-basert skjemadokumentasjon rett fra de faktiske modellene dine, så docs matcher koden.

Seede testdata

Gjør object initializers fra unit-testene dine om til XML-seed-filer for integrasjonstester, mock-servere eller legacy-systemer som fortsatt snakker XML.

Vanlige spørsmål

Kan jeg lime inn flere klasser samtidig?

Ja — lim inn en hel fil. Hver topp-nivå-klasse kommer ut med nøstede typer brettet ut og arvede properties fra baseklasser inkludert. Ingenting droppes.

Respekterer den attributter som [XmlElement], [XmlAttribute] og [XmlIgnore]?

Ja. [XmlRoot("x")] gir rotelementet nytt navn, [XmlElement("x")] et barn, [XmlAttribute("x")] sender propertyen ut som attributt på parenten, og [XmlIgnore] fjerner den helt. [DataMember(Name="x")]DataContract-klasser gir også elementet nytt navn. Dette matcher det XmlSerializer ville gjort.

Hvordan håndterer den decimal, DateTime, Guid og nullables?

Decimals (49.99m) mister suffikset og blir ren numerisk tekst. DateTime og DateTimeOffset kommer ut som ISO-8601-strings. Guid er en standard 8-4-4-4-12 hex-string. TimeSpan blir en ISO-8601-varighet eller HH:mm:ss. Nullables med null-verdi blir tomme elementer i stedet for å droppes — så formen forblir konsistent.

Hva med nøstede klasser, lister og dictionaries?

List<T>, arrays, HashSet<T> og IEnumerable<T> blir alle til container-elementer med ett barn per item, oppkalt etter elementtypen — en List<OrderItem> Items blir <Items><OrderItem/><OrderItem/></Items>. Dictionary<K,V> blir en container av <Entry><Key/><Value/></Entry>. Nøstede object initializers brettes ut som nøstede elementer med hvert felt intakt.

Lagres koden min?

Koden din sendes til backenden for konvertering og lagres ikke — vi logger ikke payloaden. Som alltid med online-verktøy: er koden reelt sensitiv, så kikk gjennom den før du limer inn.

Hva om C#-koden har noe uvanlig — metoder, delegater, IntPtr?

Sånt kommer ut som tomme elementer i stedet for å velte hele konverteringen, så resten av modellen kommer fortsatt gjennom. Hvis selve koden har syntaksfeil, fiks de åpenbare først — parseren er tilgivende, men ikke magisk.

Andre verktøy du kan trenge

C# til XML er én brikke i puslespillet. Her er verktøyene som passer godt sammen med det: