Расширение функциональности Web контроллеров. Часть 2

Тема в разделе ".NET", создана пользователем NikSoft, 8 янв 2007.

  1. NikSoft

    NikSoft Гость

    Рассмотрим доступ к ассамблее CheckBoxNik.dll посредством URL. Ресурсы, вложенные в ассемблею, могут быть доступны посредством WebResource.axd HTTP хэндлера (hanler) , доступ к которому может быть осуществлен посредством следующего URL:

    Код (Text):
    http://site/ WebResource.axd?d=assembleyKey&t=date…
    где assembleyKey – закодированная строка с именем ассамблеи, содержащая ресурс;
    date – время последней модификации ассамблеи.
    Хэндлер WebResource.axd возвращает содержимое ресурса. По умолчанию ресурсы, вложенные в ассамблею, не могут быть доступны через WebResource.axd хэндлер. С целью указания того, что ресурс может быть доступен, необходимо добавить следующую строку в файл AssemblyInfo.cs( находящийся в поддиректории Properties проекта CheckBoxNik )

    Код (Text):
    [assembly: WebResource("CheckBoxNik.JavaScript.js", "text/javascript")]
    Первый параметр строки указывает имя ресурса и должен иметь следующую структуру: RootNamespace.PathToFile. Второй параметр указывает MIME тип ресурса. Когда браузер запрашивает внешний ресурс он делает отдельный HTTP запрос к Web серверу. MIME тип указывает браузеру тип возвращаемых данных. В нашем случае "text/javascript". Нам осталось написать код, генерящий соответсвующий URL для вложенного ресурса. Для этого используем метод GetWebResourceUrl(type, webResource)класса ClientScriptManager. В нашем случае мы имеем следующий код:

    Код (Text):
    Page.ClientScript.GetWebResourceUrl(this.GetType(), "CheckBoxNik.JavaScript.js")
    Код,приведенный в функции OnPreRender,добавляет к HTML текст, аналогичный приведенному в нижеследующем фрагменте:

    Код (Text):
    <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 файлы.
     
  2. karlito

    karlito Гость

    Ничо не понял. Любое решение должно решать некую проблему. Какую проблему ты решал?

    Что такое ассамблея? Есть замечательная книга Hacking Code, которую я прочитал сразу в оригинале, а потом решил перечитать, но уже в печатном издании и на русском. Гневное письмо от расстроенного читателя ушло потом в русскую редакцию, такое ощущение, что учитель географии в деревне её переводил со словариком 45 года, добытого под Берлином. Мораль басни проста. Не надо придумывать своих слов - всё давно придумано.

    Для: NikSoft
    В целом идея понятна. Что-то новое даже для себя узнал. Но был бы моложе ничего не понял бы. Посмотри со стороны на то что написал.
     
  3. NikSoft

    NikSoft Гость

    Для: karlito
    Посмотри на заголовок:
    Расширение функциональности Web контроллеров. Часть 2
    Это продолжение 1ой части
     
Загрузка...

Поделиться этой страницей