Tim*_*sen 5 c# circular-dependency
我目前正在编写一个网络刮刀,可以从互联网上检索信息.简化它看起来像这样.
数据访问项目
现在,我正在创建实际的解析器,我将使用它像这样:
using Application.DataAccess;
using Application.DataAccess.Entities;
namespace Application{
public class TestScraper{
public static ScrapeIt()
{
var source = DataAcces.Retriever.Retrieve("http://example.com");
DataAccess.Entities.Entity entity = DataAccess.Parser.Parse(source);
//Do stuf with source here.
}
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,Parser返回一个实体.然而,这是在DataAccess名称空间中,但它没有意义......它是一个圆圈,我真的不知道如何解决这个问题.好吧,我可以想出一些东西,比如在这些层之间创建另一层.
但我只是想知道,你将如何解决这个问题.什么是好的(或最好的做法).
Ed *_*ess 12
您可以通过将两个类引用的内容分解为一个新类来修复循环引用,然后旧类引用新类.
因此,在您的情况下,您可以将实体移出DataAccess,也可以移动到DataAccess和Application使用的新Entities命名空间.
通过这样做,你开始
A <--> D
Run Code Online (Sandbox Code Playgroud)
并最终得到
A --> E
D --> E
Run Code Online (Sandbox Code Playgroud)