0
我在获取SOAP服务以反序列化对象数组时遇到问题;它在数组的第一个成员中唯一的读数而没有其他值。这里是我的代码:使用SOAP反序列化阵列
public void StoreCredentials(Credentials credentials)
{
Credentials[] credsArray;
var soap = new SoapFormatter();
var stream = new FileStream(_path, FileMode.OpenOrCreate);
try
{
credsArray = (Credentials[])soap.Deserialize(stream);
var credsList = credsArray.ToList();
credsList.Add(credentials);
credsArray = credsList.ToArray();
}
catch (SerializationException)
{
credsArray = new[] {credentials};
}
soap.Serialize(stream, credsArray);
stream.Close();
}
我写了一个简单的单元测试,增加了两个证书对象的文件,输出看起来正确的,证书的两组都存在,但是当我运行测试增加第三组到文件中,soap.Deserialize(stream)行只返回一个只有一个条目的数组,即使它读取的文件包含两个条目。我在这里做错了什么?有没有更好/更简单的方法来做到这一点?请帮忙!
,你为什么和SOAPformatter玩?为什么不使用WCF,它会为你做序列化? –
它是一个学校的东西... – peter9464
为什么你的学校让你做愚蠢的事情? –