2017-02-08 1 views
0

Wie kann Int in String für XML-Typ gDay konvertieren?Wie konvertiert man int in xs: gDay?

Beispiel:

var day = 1; 
var month = 1; 
var year = 2000; 

var xElement = new XElement(
    "Day", 
    new XAttribute("Day", ConvertToGDay(day)), 
    new XAttribute("Month", ConvertToGMonth(month)), 
    new XAttribute("Year", ConvertToGYear(year)) 
); 

XElement so sein muss:

<Day Day="---01" Month="--01--" Year="2000" /> 
+0

Was * ist * 'gDay'? Es gibt keinen solchen Standardtyp. Ihr Beispiel zeigt auch ein eher ungewöhnliches Format. Warum schreibst du keine Funktion, die nur einen String mit '-' und der gewünschten Zahl auffüllt? Ich sehe nicht, wie dies mit XML verwandt ist –

+0

@ PanagiotisKanavos Nicht Standard, sagst du? https://www.w3.org/TR/xmlschema-2/#gDay =) –

+1

@J.Steen "nie einen Web-Service oder DTO, der ein wiederkehrendes Datum in 20 Jahren angibt" dann. Nur einfache Typen haben eingebaute Mappings, so dass der Benutzer den Code schreiben muss, um eine ganze Zahl in dieses Format zu schreiben –

Antwort

1

Es scheint, dass Sie auf die XML-Schema-gDay und gMonth Typen verweisen, die in wiederkehrenden Ereignissen repräsentieren Nach den Spezifikationen für gDay. und gMonth ihre Darstellung ist ---DD und --MM

Sie könnenverwendenoder String.Formata format string mit einer Zeichenfolge mit Bindestrichen gepolstert zu erzeugen, zum Beispiel:

3.ToString("---00") 

kehrt ---03 während

11.ToString("--00") 

kehrt --11.

Sie benötigen keine spezielle Formatierung für gYear, es sei denn, Sie beabsichtigen, Jahre vor 1000 zu übergeben. In diesem Fall können Sie ToString("0000") verwenden.

Die entsprechenden Aussagen String.Format Verwendung wäre:

String.Format("---{0:00}",day); 
String.Format("--{0:00}",month); 

usw. oder durch String-Interpolation in C# 6,

$"---{day:00}" 
$"--{month:00}" 

String.Format können Sie die Darstellungen für die anderen erzeugen, Typen auch, zB für gMonthDay würden Sie String.Format("--{0:00}-{1:00}",month,day) oder $"--{month:00}-{day:00}" verwenden