我可以依赖.Net程序集名称的特定大写吗?

时间:2013-02-15 15:35:32

标签: c# .net reflection assemblies

在我的代码中,我想检查是否加载了特定的程序集。我有这段代码:

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

现在这段代码依赖于程序集的特定大小写 - 比较区分大小写。

我是否需要比较不区分大小写,或者我是否可以始终期望特定的大写字母?

1 个答案:

答案 0 :(得分:3)

根据this,运行时将程序集名称视为不区分大小写。也就是说,您不会同时加载两个程序集,其名称​​仅的大小写不同。

因此,如果您只想检查特定的程序集名称,则应使用this overload of StartsWithStringComparison .InvariantCultureIgnoreCase进行不区分大小写的比较,以避免(非常罕见)程序集名称的大小写已更改。

a.FullName.StartsWith("Microsoft.WindowsAzure.ServiceRuntime",
     StringComparison.InvariantCultureIgnoreCase)