非常简单的问题所以我希望这不会让我在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>
提前致谢,如果我能够解决这个问题,我会发布更新。
答案 0 :(得分:0)
我收到了作者的回答:
XmlRepository在这里: http://www.nuget.org/packages/SharpRepository.XmlRepository/1.3.5.18-unstable
它被标记为预发布只是因为它没有被大量使用 现实世界(据我所知)。我把它用于简单的事情 比如为简单的桌面应用程序存储少量数据等。
它意味着与POCO对象一起使用并存储集合 单个XML文件中的对象数(每个存储库类型1个)。它不是 意味着用于查询现有的随机XML文件,如果是这样的话 你的目的那么它对你不起作用。
杰夫
这是有道理的,所以我将使用已经发布在Stack上的一些答案,例如:
我认为最好的解决方案是使用Linq to XML和XML Serli
的组合