Я использую строго типизированный DataSet
, для которого ручное добавление строк будет подвержено ошибкам. Я предоставляю фабричные методы для правильного создания строк. Я хотел бы отвести потребителей моего класса от сгенерированных Add*Row
методов на *Table
классах.
Добавление Устаревшие атрибуты к сгенерированным методам поможет. К сожалению, они будут удалены при следующем генерировании кода.
Я не могу использовать частичные методы в не сгенерированном коде, поскольку дизайнер VS2008 DataSet их не использует.
MyType.Dataset.Designer.cs
выглядит примерно так:
public partial class ThingyDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable {
// I'd love an [Obsolete("Please use the factory method.")] here.
// I can't use a partial method, as this method isn't partial.
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public ShelfRow NewShelfRow()
return ((ShelfRow)(this.NewRow()));
}
}
Есть ли способ добавить атрибут Obsolete
из MyType.cs
? Попытка прототипа в стиле C не работает, так как член уже определен. Глушение в partial
не работает, потому что сгенерированный элемент не partial
.
// BROKEN EXAMPLE:
public partial class ThingyDataTable {
// I'd love an [Obsolete("Please use the factory method.")] here.
// I can't use a partial method, as this method isn't partial.
[Obsolete("Please use the factory method.")]
public ShelfRow NewShelfRow(); // ERROR: member already defined.
}
Есть ли другой способ, которым я могу пометить сгенерированный метод Obsolete
?
Как еще можно предупредить потребителей от сгенерированного метода?