我有多个具有不同配置的项目,所有这些配置必须在单个XML文件中指定。这不是app.config,而是在通用位置指定的。
我目前的项目结构:
哪种.NET XML技术最适合这种?
提前致谢
答案 0 :(得分:1)
我没有在你的帖子中读到任何建议,即.Net框架的内置Xml功能不能完成任务。
我几乎每天都在使用Xml,而且我还没有需要任何外部库。这当然取决于您的项目要求,但是您有两个项目将使用相同的功能,因此您可以(并且应该)轻松地对两个项目的Xml处理进行抽象和隔离,或者引用您自己的核心\子项目中的xml类或(我的偏好)在单独的dll项目中。一个dll可以在将来为你服务。
编写自己的Xml功能的另一个好处是,您可以更深入地了解.Net Xml命名空间的内部工作原理,这些知识绝不会浪费,而您可以通过使用外部设备来远离它库(通常只是.Net类的包装和外观)
希望这有点帮助和快乐编码。
答案 1 :(得分:1)
app.config文件可能是最适合的。您可以创建自己的配置节,并且所有引用的程序集都可以访问项目的单个配置文件,因此每个程序集都可以有自己的节。 您还可以在user.config中进行特定于用户的配置(请参阅Application Settings Architecture)。
如果您无法使用app.config,因为它需要位于特定位置,您始终可以使用ConfigurationManager.OpenMappedExeConfiguration
其他替代方案:
XmlSerializer
通过您的配置将XML反序列化为POCO。XDocument
或XmlDocument
手动解析配置文件。答案 2 :(得分:0)
该问题的当前解决方案:
使用LINQ to XML我采用了与对象匹配的XML元素。此XML元素低于根目录下的一个级别。通过这种方式,我首先'过滤'根标签,然后通过反序列化将其转换为字符串到对象。
例如
<root>
<project1>
<somevalue>myvalue</somevalue>
</project1>
<project2/>
</root>
如果我想从project1获取所有内容,我将获得带有LINQ to XML后代的字符串,然后将字符串反序列化为相应的对象。