Глава.3 .Совместно.используемые.сборки.и.сборки.со.строгим.именем
ложение — 32-разрядном x86 (возможно, с использованием технологии WoW64),
64-разрядном x64 или 64-разрядном ARM. Сначала выполняется поиск сборки
в GAC с учетом процессорной архитектуры. В случае неудачи происходит поиск
сборки без учета процессорной архитектуры.
ВниМание
Строго.говоря,.приведенный.пример.не.является.стопроцентно.верным .Для.ссылок.
на.методы.и.типы,.определенные.в.сборке,.не.поставляемой.в.составе. NET.Framework,.
все.сказанное.верно .Однако.сборки. NET.Framework.(в.том.числе.MSCorLib dll).тесно.
связаны.с.работающей.версией.CLR .Любая.сборка,.ссылающаяся.на.сборки. NET.
Framework,.всегда.привязывается.к.соответствующей.версии.CLR .Этот.процесс.на-
зывают.унификацией.(unification),.и.Microsoft.его.поддерживает,.потому.что.в.этой.
компании.все.сборки. NET.Framework.тестируются.с.конкретной.версией.CLR .Поэтому.
унификация.стека.кода.гарантирует.корректную.работу.приложений
В.предыдущем.примере.ссылка.на.метод.WriteLine.объекта.System Console.привя-
зывается.к.версии.MSCorLib dll,.соответствующей.версии.CLR,.независимо.от.того,.
на.какую.версию.MSCorLib dll.ссылается.таблица.AssemblyRef.в.метаданных.сборки
Из этого раздела мы узнали, как CLR ищет сборки, когда действует политика,
предлагаемая по умолчанию. Однако администратор или издатель сборки может
заменить эту политику. Способу изменения политики привязки CLR по умолчанию
посвящены следующие два раздела.
ПриМеЧание
CLR.поддерживает.возможность.перемещения.типа.(класса,.структуры,.пере-
числимого.типа,.интерфейса.или.делегата).из.одной.сборки.в.другую .Например,.
в. NET.3 5.класс.System TimeZoneInfo.определен.в.сборке.System Core dll .Но.в. NET.
4 0.компания.Microsoft.переместила.этот.класс.в.сборку.MsCorLib dll .В.стандартной.
ситуации.перемещение.типа.из.одной.сборки.в.другую.нарушает.работу.приложения .
Однако.CLR.предлагает.воспользоваться.атрибутом.System Runtime CompilerServices
TypeForwardedToAttribute,.который.применяется.в.оригинальной.сборке.(напри-
мер,.System Core dll) .Конструктору.атрибута.передается.параметр.типа.System
Type .Он.обозначает.новый.тип.(который.теперь.определенный.в.MSCorLib dll),.ко-
торый.теперь.должно.использовать.приложение .С.того.момента,.как.конструктор.
TypeForwardedToAttribute.принимает.этот.тип,.содержащая.его.сборка.будет.зависеть.
от.сборки,.в.которой.он.определен
Если.вы.воспользуетесь.этим.преимуществом,.нужно.также.применить.атрибут.
System Runtime CompilerServices TypeForwardedToAttribute.в.новой.сборке.и.указать.
конструктору.атрибута.полное.имя.сборки,.которая.служит.для.определения.типа .
Этот.атрибут.обычно.используется.для.инструментальных.средств,.утилит.и.сериа-
лизации .Как.только.конструктор.TypeForwardedToAttribute.получает.строку.с.этим.
именем,.сборка,.содержащая.этот.атрибут,.становится.независимой.от.сборки,.
определяющей.тип
Do'stlaringiz bilan baham: |