2009-12-07 8 views
13

Dal documentation:Perché AppDomainSetup.ShadowCopyFiles è una stringa?

Una stringa contenente il valore stringa "true" per indicare che la copia shadow è attivata; o "false" per indicare che la copia shadow è disattivata.

Ed è così da 1.1. Qualcuno può chiarire?

ho reflector'd il getter e setter per buona misura:

public string ShadowCopyFiles 
{ 
    get 
    { 
     return this.Value[8]; 
    } 
    set 
    { 
     if ((value != null) && (string.Compare(value, "true", StringComparison.OrdinalIgnoreCase) == 0)) 
     { 
      this.Value[8] = value; 
     } 
     else 
     { 
      this.Value[8] = null; 
     } 
    } 
} 

//The referenced Value property... 

internal string[] Value 
{ 
    get 
    { 
     if (this._Entries == null) 
     { 
      this._Entries = new string[0x10]; 
     } 
     return this._Entries; 
    } 
} 

private string[] _Entries; 

Così forse la matrice Value genera un costruttore di copia più facile o qualcosa del genere?

risposta

12

Mancanza di caffeina. Alcune cose non sono pensate per essere capite.

Questo chiaramente sembra essere un errore dalla prima versione .NET, non è stato risolto perché potrebbe infrangere il codice "legacy".

Accidenti, ho appena trovato questo:

Grazie per il tuo feedback su .NET Framework! Siamo d'accordo che questa è una svista e che il tipo di proprietà dovrebbe essere un booleano. Tuttavia, è piuttosto difficile (se non impossibile) apportare questa modifica ad una versione compatibile con le versioni precedenti (come Orcas), perché si romperebbe il codice di qualsiasi cliente facendo affidamento sui confronti tra stringhe. Quindi, sfortunatamente, dobbiamo soppesare il rischio di rompere la compatibilità rispetto ai benefici della pulizia dell'API ... e quando si tratta di supportare al meglio la nostra base di clienti, il primo solitamente vince. Tratteremo questo internamente come una cosa buona da migliorare e continueremo a considerarla nelle versioni future.

Da here