我可以在C#中攻击全局(或命名空间或文件)别名/变量/某些内容吗?

时间:2010-12-06 16:20:25

标签: c# visual-studio

现在我正在移动代码并重写库。不幸的是设计是错误的或未完成的所以我有一堆函数在我的lib中调用静态方法。我不想每次都做namespace.class.subclass.method。我每次都尝试使用method = namespace.class.subclass.method,但这对静态方法和类/名称空间都不起作用。

所以我想破解这个文件或命名空间的别名。直到我清理一切。可能吗?也许通过传递编译标志或设置一些选项?

2 个答案:

答案 0 :(得分:2)

如何添加

using namespace;

然后,您必须输入class.subclass.methodName();

如果不改变您的图书馆,我相信这就像它一样好。

答案 1 :(得分:2)

如果您计划将这些从静态方法迁移到实例方法,为什么不简单地将所需的最终结果作为适配器写入现有的静态方法,然后慢慢迁移到使用适配器,最后将实际代码合并到适配器类。

public class StaticAdapter
{

    public void Foo()
    {
         StaticNameSpace.StaticClass.StaticSubclass.Foo();
    }
}

用作

var adapter = new StaticAdapter();
adapter.Foo();

在创建新代码时使用适配器,当您触摸旧代码时,转换为使用adpater。一旦适配器保存了对现有代码的所有引用,您就可以开始更改适配器以直接合并代码并退出旧的静态类。