.Net には、アセンブリをコピーしてファイルのロックを保持するための ShadowCopy 機能があります。次の 2 つのプロパティがあります。
AppDomain.ShadowCopyFiles
AppDomainSetup を使用するAppDomainSetup.ShadowCopyFiles
それを内部に保存しますstring[]
AppDomainSetup
string Value[]
構成を保存するために使用されるフィールドがあります。私にとって奇妙なことはAppDomainSetup.ShadowCopyFiles
、それが文字列プロパティであり、実際の型の代わりに"true"
orを設定する必要があることです。"false"
bool
のそのプロパティの実装は次の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
このプロパティにはstring
? bool
Microsoft が のような変換ロジックを使用しなかったのはなぜAppDomain.ShadowCopyFiles
ですか?
このような少し臭いコードが にあるのは奇妙でAppDomainSetup
、私が行方不明になっている本当の理由があるのではないかと考えていました。