c# – 具有WCF的非可序列化数据成员

我有一个非序列化的对象,我无法访问源代码.有哪些选项可以将其序列化,以便我可以使用WCF通过网络发送它?

没有严重的理由说该对象不可序列化.该类不可序列化,因为它的作者只是没有标记它,我没有访问类.

最佳答案
看一下这个:

public class Base
{
    public string Name { get; set; }
    public List<int> Values { get; set; }
}

[Serializable]
public class Derived : Base 
{
    public double X { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        var d = new Derived() { X = 3.1415, Values = new List<int> { 3, 1, 4, 1, 5 }, Name = "Pi" };
        var stream = new MemoryStream();
        new XmlSerializer(typeof(Derived)).Serialize(stream, d);
        string result = Encoding.UTF8.GetString(stream.GetBuffer());
    }
}

显然,您可以使派生类可序列化.结果字符串也包含基类属性的值.

转载注明原文:c# – 具有WCF的非可序列化数据成员 - 代码日志