我应该实现存储库和xml服务吗?

时间:2012-04-02 15:28:52

标签: c# service xml-serialization repository repository-pattern

我对如何在Xml文件中存储像Person之类的简单类有疑问。

根据我的知识,我必须首先创建包含GetPersons()SavePersons(IEnumerable<Person> persons)等功能的Xml服务。

我的存储库应该包含可能的查询,AddRemove。我真的想有人解释我怎样才能开始实现这两件事?这个想法的主要思想是将其存储在xml文件中,并从存储库中获取一些查询。

1 个答案:

答案 0 :(得分:1)

存储库模式背后的想法是隐藏数据存储的细节。因此,您的存储库的用户只能看到具有以下方法的接口:

public interface IPersonRepository
{
    void Add(Person person);
    void Remove(Person person);

    void GetById(int personId);
}

如果要将XML用作数据存储,则应创建实现XmlPersonRepository接口的IPersonRepository。在这些方法中,您可以使用.NET类直接访问XML文件,或者您可以将XML数据加载到DataSet并以更加关系的方式访问它。

如果您有多个存储库,您会怎么做?一个用于人,一个用于产品,一个用于订单。如果您希望单个事务跨越这三个存储库并将更改保存在一个块中,那么您还需要另一个模式。 UnitOfWork。

Patterns of Enterprise Archicture将UnitOfWork定义为:

  

维护受业务事务影响的对象列表   协调写作的变化和分辨率   并发问题。