C# 为什么AppDomain.ShadowCopyFiles是字符串?
Net中有影子复制功能,可以通过复制程序集来保留文件锁定。 有两个属性:C# 为什么AppDomain.ShadowCopyFiles是字符串?,c#,.net,base-class-library,shadow-copy,C#,.net,Base Class Library,Shadow Copy,Net中有影子复制功能,可以通过复制程序集来保留文件锁定。 有两个属性: 使用AppDomainSetup的 将其存储在内部字符串[] AppDomainSetup具有用于存储配置的字符串值[]字段。对我来说奇怪的是,AppDomainSetup.ShadowCopyFiles是一个字符串属性,我们需要设置“true”或“false”而不是realbool类型 下面是AppDomainSetup中该属性的实现: public string ShadowCopyFiles { get {
字符串[]
AppDomainSetup
具有用于存储配置的字符串值[]
字段。对我来说奇怪的是,AppDomainSetup.ShadowCopyFiles
是一个字符串属性,我们需要设置“true”
或“false”
而不是realbool
类型
下面是AppDomainSetup中该属性的实现:
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] = (string) null;
}
}
下面是AppDomain.ShadowCopyFiles的一个实现:
public bool ShadowCopyFiles
{
get {
String s = FusionStore.ShadowCopyFiles;
if((s != null) &&
(String.Compare(s, "true", StringComparison.OrdinalIgnoreCase) == 0))
return true;
else
return false;
}
}
但是为什么在AppDomainSetup
中此属性是字符串
?为什么微软没有像在AppDomain.ShadowCopyFiles中那样使用一些bool
转换逻辑
奇怪的是,AppDomainSetup中有这么一个有点臭的代码,我只是在想我丢失它的真正原因是什么?这是早期版本的.NET中的一个错误,MS决定不修复它,因为它会破坏现有的代码 请参阅此链接 可能存在的副本