2013-02-15 1 views
0

В моем коде я хочу проверить, загружена ли конкретная сборка. У меня есть этот код:Могу ли я полагаться на конкретную капитализацию имен сборки .Net?

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

Теперь этот код опирается на конкретной капитализации сборки - сравнение чувствительно к регистру.

Мне нужно, чтобы сравнение было нечувствительным к регистру, или я могу рассчитывать на конкретную капитализацию в любое время?

+0

Для сборки Microsoft да. –

+0

@ Hans Passant: Я не совсем понимаю. Вы имеете в виду «отгружено MS»? – sharptooth

ответ

3

Согласно this, среда выполнения рассматривает имена сборок как ins-insenstive. То есть, вы не будете одновременно загружать две сборки с именами, которые только отличаются своей капитализацией.

Итак, если вы только хотите, чтобы проверить для конкретного имени сборки вы должны сделать сравнение без учета регистра с использованием this overload of StartsWith с StringComparison.InvariantCultureIgnoreCase, чтобы избежать (очень редкого) случая, когда капитализация имени сборки изменилась.

 Смежные вопросы

  • Нет связанных вопросов^_^