Wcf序列化OBJECT类型的成员

时间:2012-08-15 08:45:03

标签: wcf object serialization

我有DataContract(BalanceClassificationAttribute),它有一个对象类型的字段。

[DataContract]
[KnownType(typeof(string))]
[KnownType(typeof(long))]
[KnownType(typeof(int))]
[KnownType(typeof(uint))]
public class BalanceClassificationAttribute
{
    /// <summary>
    /// Value of searching attribute.
    /// </summary>
    [DataMember]
    public Object Value
    {
        get;
        set;
    }
}

此字段值可以是字符串,long,int,uint

添加了这些属性

[KnownType(typeof(string))]
[KnownType(typeof(long))]
[KnownType(typeof(int))]
[KnownType(typeof(uint))]

但是这个DataContract不起作用。我还能做些什么?

1 个答案:

答案 0 :(得分:0)

KnownTypeAttribute的主要目的是在soap消息反序列化中处理类型继承方案。您正在尝试将其用作在原始类型上执行数据转换的方法。您最安全的选择是通过对您在TryParse列表中引用的类型进行一系列KnownType次调用来处理值的数据转换。