N
NikSoft
Рассмотрим доступ к ассамблее CheckBoxNik.dll посредством URL. Ресурсы, вложенные в ассемблею, могут быть доступны посредством WebResource.axd HTTP хэндлера (hanler) , доступ к которому может быть осуществлен посредством следующего URL:
где assembleyKey – закодированная строка с именем ассамблеи, содержащая ресурс;
date – время последней модификации ассамблеи.
Хэндлер WebResource.axd возвращает содержимое ресурса. По умолчанию ресурсы, вложенные в ассамблею, не могут быть доступны через WebResource.axd хэндлер. С целью указания того, что ресурс может быть доступен, необходимо добавить следующую строку в файл AssemblyInfo.cs( находящийся в поддиректории Properties проекта CheckBoxNik )
Первый параметр строки указывает имя ресурса и должен иметь следующую структуру: RootNamespace.PathToFile. Второй параметр указывает MIME тип ресурса. Когда браузер запрашивает внешний ресурс он делает отдельный HTTP запрос к Web серверу. MIME тип указывает браузеру тип возвращаемых данных. В нашем случае "text/javascript". Нам осталось написать код, генерящий соответсвующий URL для вложенного ресурса. Для этого используем метод GetWebResourceUrl(type, webResource)класса ClientScriptManager. В нашем случае мы имеем следующий код:
Код,приведенный в функции OnPreRender,добавляет к HTML текст, аналогичный приведенному в нижеследующем фрагменте:
Браузер, при обработке данного кода, делает запрос к WebResource.axd HTTP хэндлеру, который извлекает вложенный ресурс ( в нашем случае Java script ) и шлет его браузеру.
Я привел пример расширения Web контроллера, используя только Java script. На практике в ассамблею можно вложить такие ресурсы как CSS файлы, графические имиджи, HTML файлы.
Код:
http://site/ WebResource.axd?d=assembleyKey&t=date…
где assembleyKey – закодированная строка с именем ассамблеи, содержащая ресурс;
date – время последней модификации ассамблеи.
Хэндлер WebResource.axd возвращает содержимое ресурса. По умолчанию ресурсы, вложенные в ассамблею, не могут быть доступны через WebResource.axd хэндлер. С целью указания того, что ресурс может быть доступен, необходимо добавить следующую строку в файл AssemblyInfo.cs( находящийся в поддиректории Properties проекта CheckBoxNik )
Код:
[assembly: WebResource("CheckBoxNik.JavaScript.js", "text/javascript")]
Первый параметр строки указывает имя ресурса и должен иметь следующую структуру: RootNamespace.PathToFile. Второй параметр указывает MIME тип ресурса. Когда браузер запрашивает внешний ресурс он делает отдельный HTTP запрос к Web серверу. MIME тип указывает браузеру тип возвращаемых данных. В нашем случае "text/javascript". Нам осталось написать код, генерящий соответсвующий URL для вложенного ресурса. Для этого используем метод GetWebResourceUrl(type, webResource)класса ClientScriptManager. В нашем случае мы имеем следующий код:
Код:
Page.ClientScript.GetWebResourceUrl(this.GetType(), "CheckBoxNik.JavaScript.js")
Код,приведенный в функции OnPreRender,добавляет к HTML текст, аналогичный приведенному в нижеследующем фрагменте:
Код:
<script src="/Costupdate/WebResource.axd?d=YHGnQVKQhfy87NAy-V-TRA2&t=632970991192343750" type="text/javascript"></script>
Браузер, при обработке данного кода, делает запрос к WebResource.axd HTTP хэндлеру, который извлекает вложенный ресурс ( в нашем случае Java script ) и шлет его браузеру.
Я привел пример расширения Web контроллера, используя только Java script. На практике в ассамблею можно вложить такие ресурсы как CSS файлы, графические имиджи, HTML файлы.