C# 对多个域对象和多个存储机制使用IRepository模式

C# 对多个域对象和多个存储机制使用IRepository模式,c#,repository-pattern,C#,Repository Pattern,这是一个非常简单的示例来演示一个问题。虽然我在这里只展示了两个域对象,但想象一下,还有更多具有各种参数的域对象 假设我有以下域对象: public class Object1 { public string Identifier { get; set; } public string Name { get; set; } } public class Object2 { public string Identifier { get; set; } public

这是一个非常简单的示例来演示一个问题。虽然我在这里只展示了两个域对象,但想象一下,还有更多具有各种参数的域对象

假设我有以下域对象:

public class Object1
{
    public string Identifier { get; set; }
    public string Name { get; set; }
}

public class Object2
{
    public string Identifier { get; set; }
    public int ItemValue { get; set; }
}
存储库模式的典型实现有一个Object1Repository和一个Object2Repository,其中每个实现了一些IRepository接口,可能包括AddObject、DeleteObject、GetObjectByIdentifier等方法。。。然后,存储库将知道如何与数据库交互以执行建议的方法

这一切都很好,我已经多次以这种方式使用存储库模式。现在我有一个问题,我有多种不同的存储机制;Oracle、SQLServer、文本文件和XML文件。支持这一想法的最佳设计方法是什么?存储库的存储库?基本上,我试图实现的是让多个不同的对象能够存储到多个不同的存储介质中,我正在尝试将存储库模式应用到这个想法中

我正在编写C代码,但我也能阅读大多数其他语言,因此建议的方法不一定是C。

请参考,我认为这是您想要的

基本上假设您已经有一个IRepository接口,其中包含CRUD方法和其他所有其他存储库引用的通用方法,那么您有多个IRepository接口实现


之后,使用任何IOC容器(我使用Windsor Castle)来解决哪个实现的组件应该参与此接口的应用程序设置。

+1。此外,如果您不想使用IoC容器,可以使用普通的AbstractFactory切换实现。在发布这个问题之前,我尝试过搜索,但似乎没有找到链接的问题。谢谢你抽出时间。