c# - 您如何测试重命名的部分方法?

标签 c# vb.net linq-to-sql partial-classes

我正在使用 Linq to SQL,它生成部分类和部分方法。然后,您通过在另一个部分类中手动实现您的自定义来扩展生成的代码。 L2S 为您提供的钩子(Hook)之一是能够实现在属性更改时调用的部分方法。例如,如果您有一个名为“MyProp”的属性,那么您可以像这样实现分部方法:

' Given to you in the generator
Partial Private Sub OnMyPropChanged()
End Sub

' Manually implemented in my custom class
' I cannot specify that this is an implementation of a Partial, even though it is...
Private Sub OnMyPropChanged()
   Console.WriteLine("My prop changed... do something here")
End Sub

我遇到的问题是“MyProp”的名称现在已更改为“MyNewPropName”,所以现在生成器中的部分创建了 Partial Private Sub OnMyNewPropNameChanged(),但是我的版本部分方法仍然具有旧名称。实际上,我现在有一个永远不会被调用的孤立的私有(private)方法,这意味着我的代码在运行时被破坏了。你会如何测试这样的东西,甚至更好 - 有没有一种方法可以指定我的 OnMyPropChanged() 版本是部分方法的实现,这样如果生成的代码中没有相应的部分?

最佳答案

通过使用静态分析(代码分析),当您的代码包含任何从未访问或仅设置的内部(私有(private)、自由、内部)成员时,您将收到警告/错误。 这可能有助于找到这样的星座。 (IIRC 相关错误代码为CA1811)

关于c# - 您如何测试重命名的部分方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6536852/

相关文章:

vb.net - 声明 bool 值时分配默认值与使用 if 语句的两个子句?

vb.net - 在 vb.net 中变量以点/句点开头是什么意思?

c# - 将 DateTime 转换为指定格式

c# - 为什么我不能将 viewmodel 属性绑定(bind)到自定义控件的依赖属性

c# - 包括派生模型相关类

C# TableAdapter 不插入和更新

c# - 在 Linq-SQL 查询上添加不确定数量的 AND?

linq-to-sql - 在连接中使用 IQueryable 会导致 StackOverflow 异常

c# - 为什么我编译的 linq 查询第一次很慢?

c# - 多次更改字符串的值会影响内存吗?