【发布时间】:2012-05-30 17:30:13
【问题描述】:
注意:我已经检查了 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
}
}
我们将不胜感激,提前致谢!
【问题讨论】:
-
这实际上是一个好问题。但坦率地说,你为什么不简单地尝试一下呢?考试好像没那么难。不过没有冒犯。
-
我相信它会影响任何根据程序集参考进行编译的人。
-
我不尝试测试它的唯一原因是因为我非常紧张时间并且认为如果有人已经知道那么我会作弊:)
标签: c# .net methods attributes obsolete