1

我有 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;
    }
}

该字段的值可以是 string、long、int、uint

A 添加了这些属性字节

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

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

4

1 回答 1

0

KnownTypeAttribute的主要目的是处理肥皂消息反序列化中的类型继承场景。您正试图将其用作对原始类型执行数据转换的一种方式。您最安全的选择是通过对您在列表中引用的类型的一系列TryParse调用来处理值的数据转换KnownType

于 2012-08-15T13:01:45.040 回答