首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用System.ServiceModel.Syndication 3.5创建类似于.NET的东西

使用System.ServiceModel.Syndication 3.5创建类似于.NET的东西
EN

Stack Overflow用户
提问于 2010-02-23 21:52:48
回答 2查看 233关注 0票数 0

如果我要处理几种标准格式,那么在C# 3.5中封装它们的最佳实践方法是什么?我想以类似于System.ServiceModel.Syndication命名空间的东西结束。

封装ADF 1.0 XML标准的类就是一个例子。它有主XML根节点,6个子元素,其中4个是必需的IIRC,几个必需的和可选的元素和属性。我希望这个类至少为所有需要的部分创建XML,直到一个完整的XML表示。(说得通)

使用LINQ4XML和扩展类等,必须有一些关于快速生成类结构以供使用的思想。是?不?:)

我不确定我是否提供了足够的细节,以得到一个正确的答案,但我愿意考虑的想法,现在。

提亚

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-24 01:57:22

XML序列化似乎是一种不错的方法。您甚至可以使用xsd.exe自动生成类..。

编辑

请注意,该工具生成的类名通常不太方便,因此您可能需要重命名它们。您还可能希望将T数组更改为List<T>__,以便您可以在需要的地方轻松地添加项。

假设根元素的类名为ADF,您可以按如下方式加载ADF文档:

代码语言:javascript
复制
ADF adf = null;
XmlSerializer xs = new XmlSerializer(typeof(ADF));
using (XmlReader reader = XmlReader.Create(fileName))
{
    adf = (ADF)xs.Deserialize(reader);
}

为了拯救它:

代码语言:javascript
复制
ADF adf = ...; // create or modify your document
...
XmlSerializer xs = new XmlSerializer(typeof(ADF));
using (XmlWriter writer = XmlWriter.Create(fileName))
{
    xs.Serialize(writer, adf);
}
票数 0
EN

Stack Overflow用户

发布于 2010-02-24 01:17:41

为什么不直接遵循SyndicationFeed对象的模式呢?创建一个类,该类接受xml文档的Uri或只接受文档片段。

然后,根据您的标准解析文档(如果您愿意,可以使用LinqToXml进行此解析,但如果您对它们感到满意,regEx可能会更快)。当文档不通过规范规则时,适当地抛出异常或跟踪错误。

如果文档通过了解析步骤,那么将文档的各个部分分解为对象的公共getter属性。然后将完全水化的对象返回给使用者使用。

对我来说挺直接的。这是你想要的还是你想要的不仅仅是这个?

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2322036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档