如果这是您想要或需要采用的方法,则可以在业务对象中使sql对象成为私有类.
public class BusinessObject
{
private class SqlObject { }
}
Run Code Online (Sandbox Code Playgroud)
此外,通过使用部分类,您可以根据需要将其分成单独的文件.
//in one file
public partial class BusinessObject
{
//business object implementation
}
//in another file
public partial class BusinessObject
{
private class SqlObject { }
}
Run Code Online (Sandbox Code Playgroud)
Joel在下面的评论中提出了一个很好的观点:"SqlObject仍然可以继承公共类型,因为连接信息可以在这些"内部"类之间共享." 这绝对是真的,而且可能非常有益.
为了响应您的编辑,单元测试只能测试公共类和函数(在测试中不使用反射).我能想到的唯一选择就是:
private class SqlObject为internal class SqlObject[InternalsVisibleTo("UnitTestsAssembly")]该项目此外,此时您不必将sql对象保留为嵌套类.一般来说,我认为这可能会增加比它增加的价值更多的复杂性,但我完全理解每种情况都不同,如果你的要求/期望推动了你,我祝你好.就个人而言,我认为我会将SqlObjects设为公共(或内部内部可见单元测试),并接受这一事实,即这意味着sql类暴露给所有业务类.
| 归档时间: |
|
| 查看次数: |
1093 次 |
| 最近记录: |