IWr*_*pps 9 .net c# methods attributes obsolete
注意:我已经检查了msdn,它没有解决我的实际问题,见下文.
我正在尝试在我的一个类中使用过时的(明显过时的)构造函数的过时属性.这是场景:
我希望能够强制开发人员更新到新构造函数,而不会影响已存在和已部署的代码.通过这种方式,我可以将我的代码部署到生产中,但是从开发人员的角度来看,无论何时他们进入他们的代码,而不仅仅是得到一个"警告"我肯定他们会忽略,我希望他们得到一个编译错误,因为现状不再正常.
所以我的问题是,这会影响开发人员,还是所有调用应用程序,还是我的整个错误?
示例代码:
public class MyClass
{
private string _userID; //new code
[Obsolete("This constructor is obsolete, please use other constructor.", true)]
public MyClass()
{
_userID = ""; //defaulting to empty string for all those using this constructor
}
public MyClass(string userID)
{
_userID = userID; //this is why they need to use this constructor
}
}
Run Code Online (Sandbox Code Playgroud)
任何和所有帮助将不胜感激,提前感谢!
Mar*_*ell 11
是的,这主要影响编译器 - 任何预先构建的代码都不会受到影响...... 除非该代码明确检查此属性.例如,一些序列化代码(XmlSerializer,IIRC)检查这一点 - 因此它可能不是完全没有副作用的...... 但是在原则上,现有代码通常不会受到影响,直到它们尝试下一次编译.
当然,如果您使用的是使用动态编译的代码(例如没有预编译的ASP.NET),那么所有的赌注都会关闭.
| 归档时间: |
|
| 查看次数: |
937 次 |
| 最近记录: |