我有一个已经发货的库(内部,但仍然发货),我想重命名库中的公共类。
我想要的是一种确保
的方法客户端代码在使用类名时编译时会收到弃用警告
有没有办法以某种方式对该类进行别名,这将展示上述属性?
答案 0 :(得分:3)
您可以'为该类提供任何公共别名,但您可以将所有公共属性,方法等转发到重命名类的私有实例,并使用过时属性修饰该类:
[Obsolete("Please use LatestGreatest instead.")]
public class OldSchool
{
private LatestGreatest _Target;
public OldSchool()
{
_Target = new LatestGreatest();
}
public void DoSomething()
{
_Target.DoSomething();
}
[Obsolete("Please use LatestGreatest.DoItInSomeOtherWay()")]
public void DoTheOldWay()
{
_Target.DoItInSomeOtherWay();
}
}
public class LatestGreatest
{
public void DoSomething()
{
Console.WriteLine("I'm so fresh and cool.");
}
public void DoItInSomeOtherWay()
{
Console.WriteLine("Let's do it...");
}
}
根据您老班级公共方面的规模,这项工作可能非常繁琐,但您无能为力。