我正在尝试序列化我在课堂上定义的 DBParameters。
当它尝试转换为序列化时,会出现以下错误。
“使用 XmlInclude 或 SoapInclude 属性指定静态未知的类型。”
这是我的代码
[Serializable]
public class DemoClass{
public List<DbParameter> Parameters { get; set; }
}
有人可以帮我解决这个问题吗?如何序列化参数属性?
谢谢
我正在尝试序列化我在课堂上定义的 DBParameters。
当它尝试转换为序列化时,会出现以下错误。
“使用 XmlInclude 或 SoapInclude 属性指定静态未知的类型。”
这是我的代码
[Serializable]
public class DemoClass{
public List<DbParameter> Parameters { get; set; }
}
有人可以帮我解决这个问题吗?如何序列化参数属性?
谢谢
DbParameter
不是序列化的好选择。
XmlSerializer
首先,存在一个抽象基类的问题,因此对于大多数序列化程序([Serializable]
包括它不是。
第二个(也许更重要的)问题是它是实现(它从根本上与 ADO.NET 相关联),其中序列化应该与数据有关。
我强烈建议您为序列化目的编写自己的 DTO 模型,该模型侧重于您需要了解的内容,例如Name
,并且Value
是最明显的事情,但DataType
也Direction
很重要 - 并序列化您自己的模型。这将解决这两个问题。
还有第三个问题,我首先会质疑序列化参数的目的。如果这是出于 RPC 目的,我强烈建议您不要这样做,因为听起来您正在打开任意 sql 漏洞。对于 RPC,只需定义和传递参数/参数作为服务边界的一部分。