我有一个非序列化对象,但我无权访问源代码。有哪些选项可以使其可序列化,以便我可以使用 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 的不可序列化数据成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19940017/