[ConfigurationProperty("providers")]是什么作用?

6
我正在阅读这篇有关提供程序模式的文章。请指导我这个语句的含义:
 [ConfigurationProperty("providers")]

实际上,我想了解什么是 [] ? 我在 web methods 上也看到了这样一行代码:[]. [] 是什么?它们有什么用?我甚至不知道该搜索什么来命名它们。请指导和帮助我。

谢谢


1
这是用属性修饰代码的C#语法:http://msdn.microsoft.com/zh-cn/library/z0w1kczw%28VS.80%29.aspx。 - Steven
2个回答

5

[Foo(bla)] 是属性的语法 - 关于某个类型或成员(甚至是汇编本身;或者参数)的附加元数据。您可以编写自己的属性,例如这样一个:

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

名称Attribute是可以推断的,所以只需要使用[ConfigurationProperty]。字符串"providers"被用作构造函数参数,也可以使用属性赋值,例如:

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

查找类型 FooAttributeFoo,构造函数需要接受一个 int 和一个 string,并且具有可以分配为 int 的属性 Bar

大多数属性本身并不做任何事情,但是您可以编写代码通过反射来检查类型是否具有某些属性,这是一种非常方便的库代码了解如何使用类型的方式。

例如:

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

这将重新配置XmlSerializer(它检查上述属性)以将类型序列化为:

<abc name="blah"/>

如果没有属性,它将是这样的:

<MyType><UserName>blah</UserName></MyType>

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接