我对如何在Xml文件中存储像Person
之类的简单类有疑问。
根据我的知识,我必须首先创建包含GetPersons()
和SavePersons(IEnumerable<Person> persons)
等功能的Xml服务。
我的存储库应该包含可能的查询,Add
和Remove
。我真的想有人解释我怎样才能开始实现这两件事?这个想法的主要思想是将其存储在xml文件中,并从存储库中获取一些查询。
答案 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定义为:
维护受业务事务影响的对象列表 协调写作的变化和分辨率 并发问题。