2009-01-25 27 views
3

每隔一段时间,我都会修改一段代码,我想“锁定”或使代码区域为“只读”。这样,我可以修改代码的唯一方法是如果我先解锁它。有没有办法做到这一点?有没有办法在Visual Studio中创建一个只读区域?

+0

也许你可以为VS编写一个插件来检查一个区域是否被扩展,区域名称是否以某个关键字开头? – 2009-01-25 22:53:57

+0

写一个VS插件有多困难? – danmine 2009-01-26 06:23:09

回答

1

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

5

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

要声明一个局部类型,你只需要使用partial上下文关键字声明:

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

    void Baz() 
    { 
    } 
} 

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

正如你所看到的,它结束了,好像来源是都在同一个文件 - 你可以调用在另一个文件中声明的方法没有问题。

0

我想过这个,但我宁愿将这个类放在一个文件中。 - danmine

对不起,mac。巫毒教的位为SVN预先承诺可能赶上它,但是否则没有其他比
//如果更改此代码,你被解雇了

2

它编译成成库DLL,并使其可在参比溶液其他的项目。

1

鉴于您对部分类别的反驳......我无法知道单个文件中缺少文档。其他选项?

  • 继承;但基类中的受保护代码(在您控制的程序集中);继承者只能拨打public/protected成员
  • postsharp - 坚持保护逻辑属性声明外部

然而,这两个仍然需要多个文件(也可能是多个组件)。

0

如果您使用版本控制系统,这是完全不必要的。因为一旦你检查了它,编辑代码的哪一部分并不重要,你总是可以进行比较或回滚。哎呀,你可能会意外地清除所有的源代码,并仍然得到它。

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

相关问题