为什么AppDomainSetup.ShadowCopyFiles是一个字符串?

从文档:   包含字符串值“true”的String,表示启用了卷影复制;或“false”表示阴影复制已关闭。 从1.1开始就是这样。谁能摆脱任何光明? 我反射了吸气剂和制定者以获得良好的衡量标准:
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; 
那么也许
Value
数组会产生一个更简单的复制构造函数或什么?     
已邀请:
缺乏咖啡因。有些事情无法理解。 这显然是.NET第一版的一个错误,没有修复,因为这可能会破坏“遗留”代码。 天哪,我刚刚发现了这个:   感谢您对.NET Framework的反馈!我们同意这是一个疏忽,属性类型应该是一个布尔值。但是,在向后兼容版本(例如Orcas)中进行此更改是非常困难的(如果不是不可能的话),因为我们会破坏依赖于字符串比较的任何客户的代码。所以不幸的是,我们必须权衡破坏兼容性的风险与API清洁度的好处......当谈到最好地支持我们的客户群时,前者通常会获胜。我们将在内部跟踪这是一个改进的好事,我们将在未来的版本中继续考虑它。 从这里     

要回复问题请先登录注册