CA1041: Zapewnianie wiadomości ObsoleteAttribute
TypeName |
ProvideObsoleteAttributeMessage |
CheckId |
CA1041 |
Kategoria |
Microsoft.Design |
Zmiana kluczowa |
Niekluczowa |
Przyczyna
Typ lub element członkowski jest oznaczony za pomocą atrybutu ObsoleteAttribute, który nie posiada określonej właściwości ObsoleteAttribute.Message.
Opis reguły
ObsoleteAttribute służy do oznaczania typów oraz elementów członkowskich z przestarzałej biblioteki.Użytkownicy biblioteki powinni unikać używania jakichkolwiek typów lub elementów członkowskich, które są oznaczone jako przestarzałe.Jest tak, ponieważ mogą nie być obsługiwane i ewentualnie mogą być usunięte z późniejszych wersji biblioteki.Podczas kompilowania typu lub elementu członkowskiego, który jest oznaczony za pomocą ObsoleteAttribute wyświetlana jest właściwość Message atrybutu.Dostarcza to informacje użytkownika o przestarzałym typie lub elemencie członkowskim.Informacje te obejmują zazwyczaj, jak długo przestarzały typ lub element członkowski będzie obsługiwany przez projektantów biblioteki oraz preferowane zastępstwo za niego.
Jak naprawić naruszenia
Aby naprawić naruszenie tej zasady, należy dodać parametr message do konstruktora ObsoleteAttribute.
Kiedy pominąć ostrzeżenia
Nie należy pomijać ostrzeżenia dotyczącego tej reguły, ponieważ właściwość Message dostarcza krytyczne informacje na temat przestarzałego typu lub elementu członkowskiego.
Przykład
Poniższy przykład pokazuje przestarzały element członkowski, który poprawnie zadeklarował ObsoleteAttribute.
Imports System
Namespace DesignLibrary
Public Class ObsoleteAttributeOnMember
<ObsoleteAttribute("This property is obsolete and will " & _
"be removed in a future version. Use the FirstName " & _
"and LastName properties instead.", False)> _
ReadOnly Property Name As String
Get
Return "Name"
End Get
End Property
ReadOnly Property FirstName As String
Get
Return "FirstName"
End Get
End Property
ReadOnly Property LastName As String
Get
Return "LastName"
End Get
End Property
End Class
End Namespace
using System;
namespace DesignLibrary
{
public class ObsoleteAttributeOnMember
{
[ObsoleteAttribute("This property is obsolete and will " +
"be removed in a future version. Use the FirstName " +
"and LastName properties instead.", false)]
public string Name
{
get
{
return "Name";
}
}
public string FirstName
{
get
{
return "FirstName";
}
}
public string LastName
{
get
{
return "LastName";
}
}
}
}
using namespace System;
namespace DesignLibrary
{
public ref class ObsoleteAttributeOnMember
{
public:
[ObsoleteAttribute("This property is obsolete and will "
"be removed in a future version. Use the FirstName "
"and LastName properties instead.", false)]
property String^ Name
{
String^ get()
{
return "Name";
}
}
property String^ FirstName
{
String^ get()
{
return "FirstName";
}
}
property String^ LastName
{
String^ get()
{
return "LastName";
}
}
};
}