私はProtoBufを使用してクラスをシリアライズします。残念ながら、Serializer.Deserializeメソッドは、 "タイプが期待されておらず、契約は推測できません:System.Object"というエラーを出します。どのようにこれを解決するためのヒント。ProtoBuf型キャストの問題
private void WriteToFile(string siteID, object objectTemp, stringfileSystemPath)
{
var type = objectTemp.GetType();
using (var file = File.Create(fileSystemPath))
{
Serializer.NonGeneric.Serialize(file, objectTemp);
}
}
private object ReadFromFile(string siteID, object objectTemp, stringfileSystemPath)
{
Type type = objectTemp.GetType();
object objectTemp2=null;
using (var file = File.OpenRead(fileSystemPath))
{
objectTemp2 = Serializer.NonGeneric.Deserialize(type, file);
}
return objectTemp2;
}
}
私は、.NET 3.5
ReadFromFileを呼び出すときにobjectTempとは何ですか?これがここの鍵です。なぜなら、それはあなたが 'type'を得ているからです。個人的には、マージしていないので、オブジェクトではなく、このメソッドに 'Type'を渡すだけです。 'オブジェクト'について話すためには、現在は 'new object()'を割り当てなければなりません。実際、 'Customer'(または何でも)を望むことを推定することはできません。 –