что делает [ConfigurationProperty ("поставщики")]? - PullRequest
5 голосов
/ 04 мая 2011

Я читаю эту статью о провайдере patren. Пожалуйста, направьте меня, что делать это утверждение:

 [ConfigurationProperty("providers")]

На самом деле я хочу узнать, что такое []? Я также видел такую ​​строку в веб-методах с []. Что [] ? какая тут польза? Я даже не в курсе, как мне это назвать? Пожалуйста, помогите мне.

Спасибо

Ответы [ 2 ]

5 голосов
/ 04 мая 2011

[Foo(bla)] - это синтаксис для атрибута - дополнительные метаданные о некотором типе или элементе (или даже самой сборке; или даже параметрах). Вы можете написать свои собственные атрибуты, например, что-то вроде:

public class ConfigurationPropertyAttribute : Attribute {
    public ConfigurationPropertyAttribute(string something) {...}
}

выводится имя Attribute, поэтому требуется только [ConfigurationProperty]. Строка "providers" используется в качестве аргумента конструктора, а также вы можете использовать присваивания свойств, например:

[Foo(123, "abc", Bar = 123)]

ищет тип FooAttribute или Foo с конструктором, который принимает int и string и имеет свойство Bar, которому можно присвоить int.

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

Например:

[XmlType("abc"), XmlRoot("abc")]
public class MyType {
    [XmlAttribute("name")]
    public string UserName {get;set;}
}

это перенастраивает XmlSerializer (который проверяет вышеуказанные атрибуты) для сериализации типа как:

<abc name="blah"/>

где без атрибутов это будет:

<MyType><UserName>blah</UserName></MyType>
1 голос
/ 04 мая 2011

Если вы пишете что-то для чтения настроек из Интернета или приложения .config, вы можете создать раздел конфигурации.Вот где приходит объявление ConfigurationProperty.

Выезд http://msdn.microsoft.com/en-us/library/system.configuration.configurationpropertyattribute(v=VS.100).aspx

...