SharpRepository:XmlRepository实现

时间:2015-05-12 18:18:17

标签: xml repository sharp-repository

非常简单的问题所以我希望这不会让我在Stack上被击中。

我正试图掌握很酷的SharpRepository包,但是我找不到有关如何阻止与它捆绑在一起的XmlRepository程序集的任何有用信息。

实际上我说的是谎言,nuget版本没有它,github版本会这样做但是我尝试使用它的垃圾尝试失败了。

我编译了github源,然后添加了对SharpRepository.Repository和SharpRepository.XmlRepository的引用,到目前为止一直很好。

然后,我做了一个非常简单的测试,首先创建了一个基本实体(名称,地址,邮政编码),然后按如下方式进行了快速测试:

var repo = new XmlRepository<Client, string>("C:\client.xml");

当我调试控制台应用程序并进入该行的源代码时,深入查看基类XmlRepositoryBase.cs并逐步执行方法LoadItems()当我尝试执行该行时出现错误

_items = (List<T>)serializer.Deserialize(reader);

我收到以下错误消息:

<client xmlns=''> was not expected.

为了测试,这个课很简单:

public class Client
{
   public Int32 Id { get; set; }
   public String Name { get; set; }
   public String Postcode { get; set; }
}

XML文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<client>
  <clientProfile>
    <id>1</id>
    <name>TheFragranceShop</name>
    <description>The Fragrance Shop</description>
    <enabled>true</enabled>
  </clientProfile>
</client>

提前致谢,如果我能够解决这个问题,我会发布更新。

1 个答案:

答案 0 :(得分:0)

我收到了作者的回答:

  

XmlRepository在这里:   http://www.nuget.org/packages/SharpRepository.XmlRepository/1.3.5.18-unstable

     

它被标记为预发布只是因为它没有被大量使用   现实世界(据我所知)。我把它用于简单的事情   比如为简单的桌面应用程序存储少量数据等。

     

它意味着与POCO对象一起使用并存储集合   单个XML文件中的对象数(每个存储库类型1个)。它不是   意味着用于查询现有的随机XML文件,如果是这样的话   你的目的那么它对你不起作用。

     

杰夫

这是有道理的,所以我将使用已经发布在Stack上的一些答案,例如:

Creating an Entity from XML

我认为最好的解决方案是使用Linq to XML和XML Serli

的组合