在我的代码中,我想检查是否加载了特定的程序集。我有这个代码:
var assembly = AppDomain.CurrentDomain.GetAssemblies().Where(
a => a.FullName.StartsWith("Microsoft.WindowsAzure.ServiceRuntime")).SingleOrDefault();
现在此代码依赖于程序集的特定大小写 - 比较区分大小写。
我是否需要比较不区分大小写,或者我可以一直期待特定的大写?
在我的代码中,我想检查是否加载了特定的程序集。我有这个代码:
var assembly = AppDomain.CurrentDomain.GetAssemblies().Where(
a => a.FullName.StartsWith("Microsoft.WindowsAzure.ServiceRuntime")).SingleOrDefault();
现在此代码依赖于程序集的特定大小写 - 比较区分大小写。
我是否需要比较不区分大小写,或者我可以一直期待特定的大写?
据此,运行时将程序集名称视为不区分大小写。也就是说,您不会同时加载两个名称仅大小写不同的程序集。
因此,如果您只想检查特定的程序集名称,您应该使用StartsWith和StringComparison .InvariantCultureIgnoreCase
的重载进行不区分大小写的比较,以避免(非常罕见)程序集名称的大写已更改的情况。
a.FullName.StartsWith("Microsoft.WindowsAzure.ServiceRuntime",
StringComparison.InvariantCultureIgnoreCase)