ASP.NET中Obsolete属性
ASP.NET中Obsolete属性在代码中如何给调用者提示所调用的方法并不是最优的,它可以被一个更好的方法所替代?ASP.NET中可以使用Obsolete特性来标记该方法是一个过时或弃用的方法。
一、Obsolete属性使用方法
1、Obsolete attribute位于System命名空间,它是一个attribute类型,以Obsolete或者ObsoleteAttribute来指定,在编译时,会自动添加上 “Attribute” 后缀。
2、指定一个attribute,用方括号[]围起所期望的attribute,置于所要修饰的方法、接口、属性、委托、事件等语言元素之前。对于Obsolete attribute,还可以为其指定0、1或2个参数。
3、Obsolete attribute可以不含参数;
4、可以含一个参数,用以产生一个编译警告信息;
5、也可以含两个参数,第一个参数用以产生编译警告/错误时的提示信息,第二个参数用以指定处理方式(true:产生编译错误;false:产生编译警告)。
二、调用形式
[Obsolete(Message, IsError)]
参数说明
1、Message:可选,string类型,编译警告信息。
2、IsError:可选,bool类型,true:产生编译错误;false:产生编译警告。
三、Obsolete属性实例
public static class ObsoleteExample
{
// Mark OrderDetailTotal As Obsolete.
[ObsoleteAttribute("This property (DepricatedOrderDetailTotal) is obsolete. Use InvoiceTotal instead.", false)]
public static decimal OrderDetailTotal
{
get
{
return 12m;
}
}
public static decimal InvoiceTotal
{
get
{
return 25m;
}
}
// Mark CalculateOrderDetailTotal As Obsolete.
[ObsoleteAttribute("This method is obsolete. Call CalculateInvoiceTotal instead.", true)]
public static decimal CalculateOrderDetailTotal()
{
return 0m;
}
public static decimal CalculateInvoiceTotal()
{
return 1m;
}
}
调用
Console.WriteLine(ObsoleteExample.OrderDetailTotal);
Console.WriteLine();
Console.WriteLine(ObsoleteExample.CalculateOrderDetailTotal());
程序编译时