2012-06-21 18 views

risposta

0

come vuoi tu! Voglio dire, una stringa, ma oltre a ciò le tue opzioni sono illimitate. Se lo volessi, potresti conservarlo come un libro per bambini su una data. È solo questione di analizzarlo ovunque sia necessario utilizzarlo. Ma suggerirei di esaminare DateTime.ToLongDateString nel codice C# da qualche parte, imparando quel modello e memorizzandolo in quel modo.

3

Non sicuro Se capisco perfettamente la tua domanda. Penso che si desidera:

È possibile definire la data della propria app.config nella sezione appSettings:

<appSettings> 
    <add key="DateX" value="21/06/2012"/> 
</appSettings> 

e recuperare ingresso AppSettings facendo qualcosa di simile a questo:

Datetime dateX; 
System.Configuration.Configuration rootWebConfig1 = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(null); 
if (rootWebConfig1.AppSettings.Settings.Count > 0) 
{ 
     System.Configuration.KeyValueConfigurationElement customSetting =  rootWebConfig1.AppSettings.Settings["DateX"]; 
     if (customSetting != null) 
     { 
      dateX = Datetime.Parse(customSetting.Value); 
     } 
} 

È possibile controllare questo MSDN link per ulteriore assistenza.

3

È facile utilizzare le impostazioni in Visual Studio. Basta aggiungere le impostazioni aprendo le proprietà per il tuo progetto, quindi vai su Settings e fai clic su "Il progetto non contiene un file di impostazioni predefinito. Clicca qui per crearne uno".

Passare alle Impostazioni e aggiungere un DateTime e definire il numero date. enter image description here

Per accedere all'impostazione in codice, è sufficiente farlo.

DateTime myDate = Properties.Settings.Default.MyDate;

1

Supponendo che si sta facendo riferimento all'elemento <appSettings> allora siete a corto-of-fortuna inizialmente: ogni tasto è associata a un valore stringa.

Pertanto è possibile vedere che è necessario serializzare il valore DateTime su una stringa e quindi analizzarlo nuovamente quando lo si legge.

Se non vi interessa circa il vostro app.config in corso di modifica da esseri umani in blocchetto per appunti, poi mi piacerebbe conservare il 64-bit zecche valore come un intero stringa:

ConfigurationManager.AppSettings["date"] = myDateTime.Ticks.ToString(CultureInfo.InvariantCulture);

leggere di nuovo in questo modo:

Int64 ticks = Int64.Parse(ConfigurationManager.AppSettings["date"], NumberStyles.Integer, CultureInfo.InvariantCulture); 
DateTime myDateTime = new DateTime(ticks); 

Tuttavia, se si vuole rendere più leggibile quindi utilizzare l'opzione di andata e ritorno:

// Serialise 
ConfigurationManager.AppSettings["date"] = myDateTime.ToString("o"); // "o" is "roundtrip" 
// Deserialise 
DateTime myDateTime = DateTime.Parse(ConfigurationManager.AppSettings["date"], NumberStyles.Integer, CultureInfo.InvariantCulture)); 

Alcune note:

  • Il mio codice è di consulenza e ruvida. In realtà ti assicureresti che tutte le istanze di DateTime siano prima in UTC e poi applichino un offset di fuso orario se necessario.
  • Si controllerà se AppSettings contiene una chiave denominata "data" per prima, e se non restituisce una risposta predefinita o equivalente a zero.
  • Eviterei anche.Analizza i metodi e usa invece TryParse e gestisce le condizioni di errore appropriate per la tua applicazione.
11

Conservare il valore nel file di configurazione:

<appSettings> 
    <add key="DateKey" value="2012-06-21" /> 
</appSettings> 

Poi per recuperare il valore che si van uso:

var value = ConfigurationSettings.AppSettings["DateKey"]; 

var appDate = DateTime.Parse(value); 
+1

Che cos'è la cultura: en-US, es-ES, ecc.? – Kiquenet