所有内部程序集与具有外部依赖项的程序集

时间:2009-04-30 15:51:09

标签: .net

如果我有两个程序集,一个只包含业务规则(程序集A),另一个作为外部依赖项的接口,如文件系统,数据库,Web服务等(程序集B),应该是一个引用B或应该B参考A?

例如:

如果我有一个SourceCodeInterpreter类(程序集A),它是否应该实例化SourceCodeFileReader(在程序集B中)来读入数据,或者SourceCodeFileReader是否应该在读取源文件后实例化SourceCodeInterpreter类然后启动解释器? / p>

1 个答案:

答案 0 :(得分:1)

这完全取决于事情将如何使用。如果程序集使用另一个程序集中定义的类型,则需要对它进行引用。我尽量避免在程序集之间添加依赖项,除非它们确实有原因。

在您的示例中,我尝试将两个程序集分开。这两个程序集最有可能被您的应用程序使用。您的应用程序可以引用它们,它们可以是独立的。该应用程序将使用SourceCodeFileReader读取您的代码,然后将其传递给您的SourceCodeInterpreter来解释它。

但是,如果您试图使这需要使用单一类型,我会将“顶级”程序集作为包含对“较低级别详细信息”的引用的程序集。在这种情况下,这可能意味着让翻译人员引用读者 - 因为读者处于较低层次,而且本身无用。