2

我正在尝试序列化我在课堂上定义的 DBParameters。

当它尝试转换为序列化时,会出现以下错误。

“使用 XmlInclude 或 SoapInclude 属性指定静态未知的类型。”

这是我的代码

[Serializable]
public class DemoClass{
public List<DbParameter> Parameters { get; set; }
}

有人可以帮我解决这个问题吗?如何序列化参数属性?

谢谢

4

1 回答 1

2

DbParameter不是序列化的好选择。

XmlSerializer首先,存在一个抽象基类的问题,因此对于大多数序列化程序[Serializable]包括它不是。

第二个(也许更重要的)问题是它是实现(它从根本上与 ADO.NET 相关联),其中序列化应该与数据有关。

我强烈建议您为序列化目的编写自己的 DTO 模型,该模型侧重于您需要了解的内容,例如Name,并且Value是最明显的事情,但DataTypeDirection很重要 - 并序列化您自己的模型。这将解决这两个问题。

还有第三个问题,我首先会质疑序列化参数的目的。如果这是出于 RPC 目的,我强烈建议您不要这样做,因为听起来您正在打开任意 sql 漏洞。对于 RPC,只需定义和传递参数/参数作为服务边界的一部分。

于 2013-10-09T08:37:56.793 回答