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

问题描述 投票:0回答:1

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

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

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

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

c# .net reflection assemblies
1个回答
3
投票

根据this,运行时将程序集名称视为不区分大小写。也就是说,您不会同时加载两个名称“仅”大小写不同的程序集。 因此,如果您只想检查特定的程序集名称,则应该使用

StartsWith

的此重载与 StringComparison .InvariantCultureIgnoreCase 进行不区分大小写的比较,以避免(非常罕见)程序集大写的情况名字变了。


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

© www.soinside.com 2019 - 2024. All rights reserved.