【发布时间】:2020-03-23 10:31:02
【问题描述】:
当我想在 WCF 中以复合类型发送 devExpress 会话时出现异常。 我试图让它可序列化,但我仍然得到错误
信息:输入
System.Data.SqlClient.SqlConnection和数据 合同名称SqlConnection:http://schemas.datacontract.org/2004/07/System.Data.SqlClient预计不会。如果您是,请考虑使用DataContractResolver使用DataContractSerializer或添加任何静态未知的类型 已知类型的列表 - 例如,通过使用 KnownTypeAttribute 属性或通过将它们添加到传递给 序列化器。
这是我使用的 DataContract。
[DataContract]
[Serializable]
[ServiceKnownType(typeof(Session))]
[ServiceKnownType(typeof(SqlConnection))]
[ServiceKnownType(typeof(SqlParameter))]
public class CompositeType
{
Session sValue ;
[DataMember]
public Session SessionValue
{ get {return sValue; } set {sValue = value; } }
}
我还使用了一种将此类作为参数发送的方法
void GetDataUsingDataContract(CompositeType composite);
【问题讨论】:
-
您能否提供有关您发送的数据或类的更多信息?
-
[DataContract] [Serializable] [ServiceKnownType(typeof(Session))] [ServiceKnownType(typeof(SqlConnection))] [ServiceKnownType(typeof(SqlParameter))] public class CompositeType { Session sValue ; [DataMember] public Session SessionValue { get {return sValue; } set {sValue = value; } } }这是我使用的 DataContract。我还使用了一种将此类作为参数发送的方法` void GetDataUsingDataContract(CompositeType composite); ` -
也请添加到您的问题中。您是否在会话中使用数据库连接存储某些内容?
-
我的目标是从 devexpress xpo 接口创建一个会话,然后将其发送到 wcf 服务以填充数据库中的信息
-
XPO 已经具有通过 WCF 服务传输数据的内置机制。你能解释一下为什么这不适合你吗?见:Transferring Data via WCF Services
标签: c# wcf devexpress xpo