0

私のコードでは、特定のアセンブリがロードされているかどうかを確認したいと思います。私はこのコードを持っています:

var assembly = AppDomain.CurrentDomain.GetAssemblies().Where(
    a => a.FullName.StartsWith("Microsoft.WindowsAzure.ServiceRuntime")).SingleOrDefault();

現在、このコードはアセンブリの特定の大文字化に依存しています。比較では大文字と小文字が区別されます。

大文字と小文字を区別しないように比較する必要がありますか、それとも常に特定の大文字と小文字を区別することを期待できますか?

4

1 に答える 1

3

thisによると、ランタイムはアセンブリ名を大文字と小文字を区別しないものとして扱います。つまり、大文字と小文字のみが異なる名前を持つ 2 つのアセンブリが同時に読み込まれることはありません。

そのため、特定のアセンブリ名のみを確認する場合は、StartsWithStringComparison .InvariantCultureIgnoreCaseのこのオーバーロードを使用して、大文字と小文字を区別しない比較を行い、アセンブリ名の大文字と小文字が変更された (非常にまれな) ケースを回避する必要があります。

a.FullName.StartsWith("Microsoft.WindowsAzure.ServiceRuntime",
     StringComparison.InvariantCultureIgnoreCase)
于 2013-02-15T15:48:42.043 に答える