这里的“[]“是指定义类或方法时,定义代码行的上一行的内容
[ServiceId("a001","A")]
public class Service : DADService
[ServiceMethod("get")]
public virtual DTOContainer GetData(DTOKey key)
}
.....
}
}
第一个问题:
查了一些资料,这个属性可以定义版本信息,标记代码块,测试代码。
资料所写的没恩能理解,那位能够结合实际例子的解释一下,别太抽象,实际点。
第二个问题:
另外,我当前的系统架构是web service结构。
c#调用java的web service,
其中 这句代码
[ServiceMethod("get")]
就是制定了调用java的那个方法
[ServiceId("a001","A")] 中的a001,指定了调用哪个类。
这个用法也是属性吗?有这样用过的没有?
它是如何实现的?
一共两个问题,期待解答。
-----------------------------------------------------------------
特性类...
一般用来指示类如何展示,使用,在运行时可以通过反射得到,进而做其它的事情
给个最简单的例子
-
C# code
-
[Obsolete] private void button1_Click( object sender, EventArgs e ) { // 代码略
此时编译下,会有一个[警告]提示方法已过时
警告 1 “Linq.Form1.button1_Click(object, System.EventArgs)”已过时 D:/kkun/Linq/Linq/Form1.Designer.cs 39 35 Linq
如果改为
-
C# code
-
[Obsolete( " 方法已经过时了 " , true )] private void button1_Click( object sender, EventArgs e ) {
则直接报错!生成错误!
错误 1 “Linq.Form1.button1_Click(object, System.EventArgs)”已过时:“方法已经过时了” D:/kkun/Linq/Linq/Form1.Designer.cs 39 35 Linq
够直观吧?!
---------------------------------------------------------------------------------------------------------
-
C# code
-
[ObsoleteAttribute( " 方法已经过时了 " , true )] private void button1_Click( object sender, EventArgs e ) {
一个意思,另外一个最常见的例子
-
C# code
-
[Serializable] public class SomeClass { }
Serializable指示该类可以序列化!~如果没有此特性类修饰则试图序列化该类时会报错
同样也可以写全了,没区别
-
C# code
-
[SerializableAttribute] public class SomeClass { }