我尝试通过 Socket 发送 HttpWebRequest,当我想对其进行序列化时,我得到了这个异常:
mscorlib.dll 中出现“System.Runtime.Serialization.SerializationException”类型的未处理异常附加信息:在程序集“系统”中键入“System.Net.WebRequest+WebProxyWrapper”,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089 ' 未标记为可序列化。
这是我的代码:
[Serializable()]
class BROWSER
{
HttpListener Response = null;
HttpListenerContext context = null;
HttpListenerRequest request = null;
HttpListenerResponse response = null;
public HttpWebRequest Webrequest = null;
public WebResponse Webresponce = null;
string responseString = null;
//when my Webrequest is ready ...
public void SendToProxyServer(HttpWebRequest Webrequest)
{
byte[] SndData;
S_RSocket sock = new S_RSocket();
SndData = Serializ.seryaliz(this.Webrequest);
sock.Send(SndData);
this.responseString = sock.res;
}
和我的序列化类:
abstract class Serializ
{
#region Filds
static MemoryStream ms = null;
static BinaryFormatter formatter = null;
#endregion
#region Methods
public static byte [] seryaliz(object obj)
{
ms = new MemoryStream();
formatter = new BinaryFormatter();
formatter.Serialize(ms, obj);
ms.Position = 0;
String tmp = null;
StreamReader sr = new StreamReader(ms);
tmp = sr.ReadToEnd();
ms.Position = 0;
sr.Close();
ms.Close();
return Encoding.ASCII.GetBytes(tmp);
}
public static object DEseryaliz(byte [] Data)
{
object obj = new object();
formatter = new BinaryFormatter();
ms = new MemoryStream(Data);
ms.Position = 0;
obj=(object)formatter.Deserialize(ms);
ms.Close();
return obj;
}
#endregion
}
我将我的类设置为 Serializable() 但它不起作用。
问题出在哪里?