Могут ли атрибуты быть добавлены динамически в C #?

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

httpreq = new ActiveXObject("Msxml2.ServerXMLHTTP.3.0");

Существует метод, называемый setOption, который открывается для использования:

httpreq.setOption(2, 13056);

С этими параметрами запрос теперь игнорирует недопустимый сертификат и все равно захватывает информацию. Если я правильно понимаю, это не будет работать с какой-либо другой технологией Microsoft, пытающейся запустить скрипт, но это нормально для области моего проекта.

140
задан Mark Cidade 24 September 2008 в 19:32
поделиться

9 ответов

Атрибуты являются статическими метаданными. Блоки, модули, типы, участники, параметры и возвращаемые значения не являются первоклассными объектами в C# (например, System.Type, класс является просто отраженным представлением типа). Можно получить экземпляр атрибута для типа и изменить свойства, если они перезаписываемы, но это не будет влиять на атрибут, поскольку он применяется к типу.

66
ответ дан shA.t 24 September 2008 в 19:32
поделиться
  • 1
    Я пытаюсь использовать свое промежуточное программное обеспечение после маршрутизатора, но это, кажется, не инициировано вообще. Это только инициировано, если я использую его прежде app.router. Я использую его, подстрекают app.configure блок, если это имеет какое-либо значение. – ragulka 24 October 2012 в 21:02

Ну, только чтобы отличаться, я нашел статью тем ссылки с помощью Отражения. Испустите, чтобы сделать так.

Вот ссылка: http://www.codeproject.com/KB/cs/dotnetattributes.aspx , Вы также захотите изучить некоторые комментарии у основания статьи, потому что обсуждены возможные подходы.

10
ответ дан torial 24 September 2008 в 19:32
поделиться
  • 1
    Если этот ответ достаточен, необходимо отметить его, как отвечено – Justin 4 June 2012 в 15:19

Вы не можете. Одно обходное решение могло бы быть должно генерировать производный класс во времени выполнения и добавлении атрибута, хотя это - вероятно, бит излишества.

10
ответ дан petr k. 24 September 2008 в 19:32
поделиться

Нет, это не.

Атрибуты являются метаданными и сохраненный в двоичной форме в скомпилированном блоке (это также, почему можно только использовать простые типы в них).

4
ответ дан Thomas Danecker 24 September 2008 в 19:32
поделиться
  • 1
    Извините, находившийся далеко - Queen' s юбилей an' все!;) – stan4th 5 June 2012 в 20:50

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

3
ответ дан Joel Coehoorn 24 September 2008 в 19:32
поделиться
  • 1
    хорошо, это похоже на it' s, в чем я нуждаюсь. Существует ли потеря производительности для использования отражения? – frenchie 2 January 2012 в 15:44

Если Вам нужно что-то, чтобы быть в состоянии к добавленному динамично, c# атрибуты не путь. Изучите то, чтобы хранить данные в xml. Я недавно сделал проект, что я запустил атрибуты w/, но в конечном счете переместился в сериализацию w/xml.

3
ответ дан Darren Kopp 24 September 2008 в 19:32
поделиться
  • 1
    Что относительно его требования, чтобы только скопировать непустые свойства? – Devin Burke 2 January 2012 в 15:45

Почему Вы должны? Атрибуты дают дополнительную информацию для отражения, но если Вы внешне знаете, какие свойства Вы хотите Вас, не нуждаются в них.

Вы могли сохранить метаданные внешне относительно легко в базе данных или файле ресурсов.

3
ответ дан Keith 24 September 2008 в 19:32
поделиться
  • 1
    Да, потеря производительности является довольно значительной, по словам этого парня приблизительно в 15 раз медленнее: manuelabadia.com/blog/… – Bas 2 January 2012 в 15:46

Это действительно зависит от того, что точно Вы пытаетесь выполнить.

Система. ComponentModel. Материал TypeDescriptor может использоваться для добавления атрибутов к типам, свойствам и экземплярам объектов, и он имеет ограничение, что необходимо использовать его для получения тех свойств также. Если Вы пишете код, который использует те атрибуты, и можно жить в рамках тех ограничений, то я определенно предложил бы его.

, Насколько я знаю, управление PropertyGrid и поверхность для дизайна Visual Studio являются единственными вещами в BCL, которые используют материал TypeDescriptor. На самом деле это - то, как они делают приблизительно половину вещей, которые они действительно должны сделать.

67
ответ дан Alex Lyman 24 September 2008 в 19:32
поделиться
  • 1
    Удостоверьтесь, что Вы звоните next в свои маршруты, в других отношениях специальный won' t выполняют любое промежуточное программное обеспечение после того маршрута – Christopher Tarquini 29 September 2013 в 15:27

В Java я раньше работал вокруг этого при помощи карты, и реализация моего собственного берут кодирование Значения ключа.

http://developer.apple.com/documentation/Cocoa/Conceptual/KeyValueCoding/KeyValueCoding.html

-7
ответ дан Daniel Honig 24 September 2008 в 19:32
поделиться
Другие вопросы по тегам:

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