有没有办法在visual studio中使代码区域“只读”?

时间:2009-01-25 19:45:27

标签: visual-studio readonly

每隔一段时间,我就修改了一段代码,我想“锁定”或使代码区域“只读”。这样,我可以修改代码的唯一方法是先解锁它。有没有办法做到这一点?

6 个答案:

答案 0 :(得分:5)

在许多情况下最简单的方法是使其成为部分类型 - 即源代码分布在多个文件中的单个类。然后,您可以将一个文件设置为只读,另一个文件可写。

要声明部分类型,只需在声明中使用partial上下文关键字:

// MyClass.First.cs:
public partial class MyClass
{
    void Foo()
    {
        Bar();
    }

    void Baz()
    {
    }
}

// MyClass.Second.cs:
public partial class MyClass
{
    void Bar()
    {
        Baz();
    }
}

正如您所看到的,它最终就好像源都在同一个文件中 - 您可以从另一个文件中调用在一个文件中声明的方法而没有任何问题。

答案 1 :(得分:2)

将其编译成库dll,并使其可供其他项目参考。

答案 2 :(得分:1)

将代码拆分为单独的文件,然后检查源控制系统?

答案 3 :(得分:1)

鉴于你对部分类的反驳......我没有办法在单个文件中知道,缺少文档。其他选择?

  • 遗传;但受保护的代码在基类中(在您控制的程序集中);继承者只能致电public / protected成员
  • postsharp - 将受保护的逻辑粘贴在外部声明的属性中

但是,这两个文件仍然需要多个文件(可能还需要多个程序集)。

答案 4 :(得分:0)

我想到了这一点,但我宁愿把这个班级保存在一个文件中。 - danmine

抱歉,mac。作为SVN预提交的一点伏都教可能会抓住它,但除了 //之外没有其他解决方案如果你改变了这个代码就会被解雇

答案 5 :(得分:0)

如果您使用的是版本控制系统,则完全没有必要。因为一旦你检查了它,你编辑的代码的哪个部分并不重要,你可以随时区分或回滚。哎呀,你可能会意外地删除所有的源代码,但仍然可以恢复原状。

由于你想要锁定代码的某些部分,我得到了一个非常糟糕的“code smell”。我猜测也许你在一个类中做得太多了,在这种情况下,将它重构为一组适当的类。事实上,在10年以上的视觉工作室已经存在之后,这个功能无法使用,应该表明你可能希望这样做是因为设计不佳。