Asp.net Mvc: Перечислите все действия с контроллером с определенным атрибутом

Если это - первый раз, когда Вы загрузили свое окружение, оно возьмет несколько (в зависимости от того, сколько времени оно берет для загрузки приблизительно 400 МБ Данных изображения Сервера) создавать первое основное изображение. В Вашем пути "dir данных" (определенный в Вашем environments.yaml файле) существует machine-agent.log, который описывает этот процесс:

2012-05-09 10:04:03,848: juju.agents.machine@INFO: Machine agent started id:0
2012-05-09 10:05:08,175: juju.agents.machine@DEBUG: Units changed old:set([]) new:set(['mysql/0'])
2012-05-09 10:05:08,176: juju.agents.machine@DEBUG: Starting service unit: mysql/0 ...
2012-05-09 10:05:08,222: unit.deploy@DEBUG: Downloading charm cs:precise/mysql-1 to /home/marco/.juju/local/marco-local/charms
2012-05-09 10:05:08,314: unit.deploy@DEBUG: Using <juju.machine.unit.UnitContainerDeployment object at 0x9cccbec> for mysql/0 in /home/marco/.juju/local/marco-local
2012-05-09 10:05:08,375: unit.deploy@DEBUG: Starting service unit mysql/0...
2012-05-09 10:05:08,376: unit.deploy@DEBUG: Creating master container...

Несколько моментов спустя Вы будете видеть следующее:

2012-05-09 10:09:40,699: unit.deploy@DEBUG: Created master container marco-local-0-template
2012-05-09 10:09:40,699: unit.deploy@INFO: Creating container mysql-0...
2012-05-09 10:10:31,429: unit.deploy@INFO: Container created for mysql/0
2012-05-09 10:10:31,483: unit.deploy@DEBUG: Charm extracted into container

, Который детализирует это несколько минут спустя, основной контейнер был создан.

Наконец, не каждый "локальный" boostrap работы, попытка работать juju destroy-environment и затем повторно выполняются juju bootstrap

9
задан Community 23 May 2017 в 12:24
поделиться

1 ответ

Я использую некоторый код в своих модульных тестах, чтобы убедиться, что определенные действия украшены атрибутами. Он использует отражение с некоторыми достоинствами перечислимого метода расширения. Я думаю, вы могли бы это приспособить. Обратите внимание: если вас интересует только то, существует он или нет, вы можете использовать Count () в перечислении, а не получать фактический атрибут. Таким образом, вы получаете некоторую гибкость в использовании свойств атрибута для настройки поведения. Использование дерева наследования позволит вам украсить весь контроллер.

 var methods= controller.GetType()
                        .GetMethods( BindingFlags.Public | BindingFlags.Instance )
 foreach (var info in methods)
 {
     if (info.ReturnType  == typeof(ActionResult))
     {
        var attribute = info.GetCustomAttributes( typeof( SiteMapAttribute ), true )
                            .Cast<SiteMapAttribute>()
                            .FirstOrDefault();

        if (attribute != null && !attribute.Exclude.Contains( info.Name ))
        {
            ...
        }
    }
}
18
ответ дан 4 December 2019 в 11:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: