C# Iserializable可序列化通过webservice发送的只读方法
我使用只读方法通过Web服务发送对象。 我正在使用Iserializable接口,假设我不再需要无参数构造函数。这不是真的,我仍然无法通过电线发送我的对象C# Iserializable可序列化通过webservice发送的只读方法,c#,C#,我使用只读方法通过Web服务发送对象。 我正在使用Iserializable接口,假设我不再需要无参数构造函数。这不是真的,我仍然无法通过电线发送我的对象 public class Foo: ISerializable { public boolean IsBusy { get; private set;} protected Foo(SerializationInfo info, StreamingContext context) { this.IsBusy = info.GetB
public class Foo: ISerializable
{
public boolean IsBusy { get; private set;}
protected Foo(SerializationInfo info, StreamingContext context)
{
this.IsBusy = info.GetBoolean("IsBusy");
}
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
{
.AddValue("IsBusy", this.IsBusy);
}
不太确定什么是只读方法。但ISerializable仅适用于二进制序列化。web服务使用XML序列化,需要无参数构造函数 您可以使用的一个技巧是对其进行属性化,以便客户端代码永远不能直接使用它:
[Obsolete("For serialization only", true)]
public Foo() {}
我应该说是只读属性。很抱歉,我所指的*public boolean IsBusy{get;private set;}*带有public getter和private setter.XML序列化的属性也不允许这样做。如有必要,使用一个“proxy”类,这是一个简单的助手,只复制需要序列化的属性。