我正在使用强类型
在生成的方法中添加过时的属性即可。不幸的是,它们会在下一次代码生成时被删除。
我无法在非生成代码中使用部分类方法,因为VS2008 DataSet设计器不使用它们。
DataSet
,手动添加行会容易出错。我提供工厂方法来正确创建行。我希望引导我的类的消费者远离生成的*Table
类上的Add*Row
方法。在生成的方法中添加过时的属性即可。不幸的是,它们会在下一次代码生成时被删除。
我无法在非生成代码中使用部分类方法,因为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()));
}
}
我能否从MyType.cs
中添加一个Obsolete
属性?尝试使用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
?
我还能以什么其他方式警告使用者不要使用生成的方法?