Регистрация    Вход    Форум    Поиск    FAQ

  •  Новости
  • Beeline + Twitter = чирикай через SMS!

    Beeline + Twitter = чирикай через SMS! На первой картинке обозначены команды, при помощи которых через SMS Вы сможете кого-либо зафолловить или же отписаться, ретвитнуть чей-либо пост или же написать личное сообщение.

    Open Graph Protocol. От создателей Facebook

    Open Graph Protocol. От создателей Facebook Разбираясь с Facebook API, случайно наткнулся на другую интересную разработку от этих людей.

    Глобальное ускорение Wordpress

    Глобальное ускорение Wordpress Не считая очевидных решений типа отключения некоторых плагинов и перехода на тему попроще, я вижу 2 пути для оптимизации: кэширование и сжатие траффика.




  •  Часы


  •  Поиск

Optimaze » Программирование » Доступ к статическим полям в Spring.NET




Доступ к статическим полям в Spring.NET



    Часто при конфигурации приложения через Spring. NET xml-файл требуется присвоить какому-то свойству значение статического поля определенного класса. Например, у меня есть класс:

     

    namespace MyNamespace{

        public class MyClass{

            public string Directory {get; set;}

        }

    }

    Предположим, что в поле Directory нужно передать путь к папке Bin веб-приложения. В коде это выглядело бы так:

     

    var myObject = new MyClass();

        myObject. Directory = HttpRuntime. BinDirectory;

    Теперь сделаем тоже в конфигурации Spring. NET. Для начал, создадим объект:

     

    <object id="myObject" type="MyNamespace. MyClass">

        </object>

    Следующим шагом зададим значение свойства Directory используя Spring. NET Expressions:

     

    <object id="myObject" type="MyNamespace. MyClass">

            <property name="Directory" expression="HttpRuntime. BinDirectory"/>

        </object>

    Значение тега expression совпадает с выражением, которое мы написали в коде. Казалось бы в таком виде все должно работать. Ан нет! Если запустить приложение с такой конфигурацией, то получим ошибку:

     

    Cannot initialize property or field node ‘HttpRuntime’ because the specified context is null.

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

     

    Exception Details: Spring. Core. NullValueInNestedPathException: Cannot initialize property or field node ‘HttpRuntime’ because the specified context is null.

    Причина ошибки в том, что Spring не понимает такое имя класса как HttpRuntime, так как оно не зарегестрированно. Для регистрации класс можно выполнить такую строку кода:

     

    TypeRegistry. RegisterType("HttpRuntime", typeof (HttpRuntime));

    Но, следуя идеологии Spring`а, гораздо удобнее прописать это в конфигурации:

     

    <object id="typeAliasesConfigurer" type="Spring. Objects. Factory. Config. TypeAliasConfigurer">

        <description>Register types to enable static members</description>

        <property name="TypeAliases">

            <dictionary>

                <entry key="HttpRuntime" value="System. Web. HttpRuntime"/>

            </dictionary>

        </property>

        <property name="Order" value="1"></property>

    </object>

    <object id="myObject" type="MyNamespace. MyClass">

            <property name="Directory" expression="HttpRuntime. BinDirectory"/>

        </object>

     

    Вот и все! Такую конфигурацию вполне можно использовать.



    Рейтинг: 4.5/5, основан на 25 голосах.


    Нравится



    Вернутся назад


       

    Вам будет интересно:

    Доступ к статическим полям в Spring.NET

    Часто при конфигурации приложения через Spring. NET xml-файл требуется присвоить какому-то свойству значение статического поля определенного класса.

    Подсчет оставшегося времени на PHP

    Опишу одну функцию, которая позволяет отсчитать оставшееся время до какой-нибудь даты.

    Выполнение JavaScript-кода

    Иногда приложение проектируется таким образом, что сервер в качестве ответа возвращает JavaScript-код, который должен быть выполнен в браузере.

    Почему не работает функция strtolower()

    Немного посмеялся и поправил на более корректный вариант в данном случае, заодно решил и сюда отписать, вдруг читатель встретился с таким, но, к сожалению, не будет знать как это решить.



    •  Публикации


    8 методов раскрутки своего форума с нуля

    8 методов раскрутки своего форума с нуля Итак, у вас имеется свой собственный форум, но его никто не посещает? Мы готовы помочь вам справиться с этой нелегкой проблемой.

    Как привлекать посетителей на проект

    Как привлекать посетителей на проект Данная статья в основном рассчитана на тех, кто самостоятельно занимается продвижением своего проекта.

    Про MySQL, серверы и PayPal

    Про MySQL, серверы и PayPal Проклял все настройки кодировок, проклял DirectAdmin и еле-еле нашел то место где располагается и задается общий пароль для ...

    Реклама в Твиттере. Как подать свой продукт

    Реклама в Твиттере. Как подать свой продукт Твиттер уже давно стал из нового web 2. 0 сервиса рекламной площадкой с огромным количеством потенциальных пользователей ...

    Пока блог на локалхосте

    Пока блог на локалхосте Самое время кратко описать, чем нам придется заниматься. Прежде всего нужно понять, что блог ты будешь делать для получения ...

    Авторитет блоггера притягивает

    Авторитет блоггера притягивает Долго не знал с чего начать данную статью. Статья что-то типа мыслей вслух и философии.