MVC3 基本 C# 编程问题 - 动态 CRUD XML 应用程序 - 问题
我已经使用存储库模式在 XML 文档上创建了一个具有 CRUD 功能的应用程序。 我有 4 个模型(4 个 xml 文件),每个模型都有一个存储库类。 之前,构造函数中仅将 4 个 xml 文档读入 XDocument 对象。
itemData = XDocument.Load(HttpContext.Current.Server.MapPath("~/App_Data/Items/item1.xml"));
现在我想让 xml 文件动态化,这样它就可以读取无限的 xml
那么最好的方法是什么?创建第二个构造函数并从 url 传入参数?像这样:
public ItemRepository()
{
}
public ItemRepository(string xml)
{
itemData = XDocument.Load(HttpContext.Current.Server.MapPath("~/App_Data/Items/" + xml + ".xml"));
....
}
还有其他建议吗?因为我的模型得到了 NullReferenceException 。
I've created an app with CRUD functions on XML documents with repository pattern.
I have 4 models (4 xml files) with each a repository class.
Before it was just 4 xml documents that were read into a XDocument object in the constructor.
itemData = XDocument.Load(HttpContext.Current.Server.MapPath("~/App_Data/Items/item1.xml"));
Now I would like to make the xml file dynamic, so it can read unlimited xmls
So whats the best approach? Making a second constructor and passing in a parameter from the url? Something like this:
public ItemRepository()
{
}
public ItemRepository(string xml)
{
itemData = XDocument.Load(HttpContext.Current.Server.MapPath("~/App_Data/Items/" + xml + ".xml"));
....
}
Any other suggestions? Cos i get NullReferenceException with the Model with this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
除了存储库可能直接接受获取其 xml 文件的完整路径之外,我没有发现您的方法有任何不好的地方。这会是一种更简洁的书写方式。
由于您的 NullReferenceException,只有彻底的调试可能会对您有所帮助。如果您的第一个语句有效,我不明白为什么下一个语句不应该起作用,至少从您在这里编写的代码来看是这样。
祝你好运,
I do not see anything bad with you approach except that the repository might accept directly the complete path to get its xml file. It would be just a bit cleaner way of writting it.
AS your NullReferenceException, only a thorough debug might help you. If your first statement was working , I do not see why the next one shouldn't, at least from the bits of code you have written here.
Good luck to you,
最简单的解决方法是将构造函数中的代码直接放入所有 CRUD 方法中。这里有一个链接,提供更多信息(以及更多问题:P)使用 XElement 时出现 NullReferenceException
Easiest workaround is to just out the code from the constructor into all the CRUD methods. Here a link for a little more info (and more issues :P) NullReferenceException while using XElement