Можно создать дубликат:
Why are C# collection-properties not flagged as obsolete when calling properties on them?ObsoleteAttribute путаница
Я хотел бы применить ObsoleteAttribute к собственности, но, кажется, что компилятор генерирует предупреждения/ошибки только для непосредственного использования атрибута любой косвенное использование молча игнорируется.
Я думаю, что следующий пример иллюстрирует проблему очень хорошо:
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; } }
}
}
Прикованный; MS link: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=417159 –
3 минуты, теперь это впечатляет, спасибо вам, ребята! Просим прокомментировать:/ – dolzenko
Официальный ответ: http://stackoverflow.com/questions/577132/why-are-c-collection-properties-not-flagged-as-obsolete-when-calling-properties/652824#652824 –