如何序列化IList <t>字段而不生成复杂的AssemblyQualifiedName?

时间:2017-05-11 04:13:30

标签: c# wcf serialization

我有一个使用WCF DataContractSerialize序列化的项目。 序列化类中的字段public IList<Simple> List2;时,它始终生成

<a:List2 z:Id="536" i:type="b:System.Collections.Generic.List`1[[SerializationTypes.Simple, Serialization.Tests, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad89668eb]]" z:Size="2" >
  <c:Simple z:Ref="525" i:nil="true"/>
  <c:Simple z:Ref="534" i:nil="true"/>
</a:List2>

我不希望结果中存在硬代码部分Serialization.Tests, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad89668eb,因为我需要将序列化结果作为基线。因为它是该字段中genericType的程序集限定名称。所以我找不到改变它的方法。

您能帮忙找到解决方法吗?

[DataContract(IsReference = true)]
public class Collection2
{
    [DataMember]
    public IList<Simple> List2;
}
[DataContract(IsReference = true)]
public class Simple
{
    [DataMember]
    public string Data;
    public Simple() { }
}

0 个答案:

没有答案