【问题标题】:Implementing my own IXmlSerializer for a web service为 Web 服务实现我自己的 IXmlSerializer
【发布时间】:2011-03-15 17:30:32
【问题描述】:

我正在制作一个传递几个对象的 asmx Web 服务,我有两个问题:第一个是我使用字典,第二个是某些对象具有只读属性。

我已经对 Web 服务做出了足够的妥协,我不会给他赢得另一场战斗的喜悦,所以我决定为我的对象编写自己的序列化程序。这是一个好的决定吗?我说的是 7 个类和一个字典,它们都具有某种只读属性。
我必须为每个班级制作一个模式文件吗?看看 IXmlSerializer 的实现,它似乎并不太复杂,我所要做的就是在 ReadXml 中为类编写一个“构造函数”,在 WriteXml 中编写一个“解构函数”,不是吗?

编辑:好的,这回答了一个问题,现在当我在客户端获取对象时,它们作为 Dataset[] 接收,如何将它们转换为适当的类?

【问题讨论】:

  • 您不能使用 WCF 有什么原因吗?如果可以避免,将所有这些麻烦都花在 ASMX 服务上没有多大意义。
  • 是的,有一个很大的原因。这是一个学校项目,我不仅时间有限,而且我很确定我使用这种精确技术的能力评分...
  • 在“过时技术学院”祝你好运...
  • @John,不仅如此。我们在“Internet”中有一个单元,直到两年前(当我这样做时)这意味着用 CLASSIC ASP 编写一个站点。是的,我指的是 2002 年每个人都停止使用的那个版本。就在我们开始使用 ASP.NET 的第二年。

标签: c# web-services xml-serialization asmx


【解决方案1】:

总体而言,您是对的,对于给定的单个类,这并不是很复杂。

如果您有描述的完整对象图,情况会变得复杂。您只需想出一个 XML 结构,其中包含构建类型实例和所有依赖类型所需的所有信息。

这可能需要更改您的类才能正常工作,即如果依赖类型的实例通常由您的主类在内部构造,那么现在如何在外部构造此实例并将其注入到您的类中?不漂亮 - 所以如果有一个对象图在对象之间有很多依赖关系,我会对这种方法三思而后行。如果它符合您当前为对象依赖项和创建策略定义的内容,那就去吧。

【讨论】:

  • 其实这不是什么大问题。这些对象非常简单,如果它们包含对另一个对象的引用,它们会使用该对象的 ID。我已经尝试了一个对象,现在出现了如何从服务器接收对象的问题,我将更新问题。
猜你喜欢
  • 1970-01-01
  • 2015-05-11
  • 2012-11-18
  • 2017-07-06
  • 2016-04-16
  • 1970-01-01
  • 1970-01-01
  • 2017-09-08
  • 1970-01-01
相关资源
最近更新 更多