Possible en double:
Why are C# collection-properties not flagged as obsolete when calling properties on them?ObsoleteAttribute confusion
Je voudrais demander ObsoleteAttribute à une propriété, mais il semble que le compilateur génère des avertissements/erreurs uniquement pour une utilisation directe de l'attribut, tout l'utilisation indirecte est silencieusement ignorée.
Je pense que l'exemple suivant illustre très bien le problème:
using System;
class Program
{
static void Main(string[] args)
{
var o = new Old();
Console.WriteLine(o.Geezer); // compilation fails: 'ObsoleteAttributeTest.Program.Old.Geezer' is obsolete: 'Some error'
Console.WriteLine(o.Geezer.Attributes); // compiles OK
}
class Old
{
[ObsoleteAttribute("Some error", true)]
public System.Xml.XmlElement Geezer { get { return null; } }
}
}
Appuyée; MS lien: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=417159 –
3 minutes, c'est impressionnant, merci les gens! Désolé soumettre double:/ – dolzenko
Réponse officielle: http://stackoverflow.com/questions/577132/why-are-c-collection-properties-not-flagged-as-obsolete-when-calling-properties/652824#652824 –